Dockerfile 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. FROM debian
  2. ARG GO_SERVER_VERSION=16.1.0
  3. ARG GO_SERVER_BUILD=2855
  4. RUN apt-get clean && apt-get update \
  5. && apt-get install -y \
  6. curl \
  7. default-jre-headless
  8. RUN apt-get clean && apt-get install -y \
  9. git \
  10. subversion
  11. RUN apt-get clean && apt-get install -y maven
  12. RUN apt-get clean && apt-get install -y gradle \
  13. && apt-get clean
  14. # Setting Java8 as default Java
  15. WORKDIR /opt
  16. RUN curl -sL -o - --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" -q "http://download.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-linux-x64.tar.gz" | tar xzf - && \
  17. update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_66/bin/java 120 \
  18. && update-alternatives --install /usr/bin/keytool keytool /opt/jdk1.8.0_66/bin/keytool 120\
  19. && update-alternatives --install /usr/bin/rmiregistry rmiregistry /opt/jdk1.8.0_66/bin/rmiregistry 120\
  20. && update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_66/bin/javac 120 \
  21. --slave /usr/bin/jar jar /opt/jdk1.8.0_66/bin/jar \
  22. --slave /usr/bin/rmic rmic /opt/jdk1.8.0_66/bin/rmic\
  23. && update-alternatives --set java /opt/jdk1.8.0_66/bin/java\
  24. && update-alternatives --set keytool /opt/jdk1.8.0_66/bin/keytool \
  25. && update-alternatives --set rmiregistry /opt/jdk1.8.0_66/bin/rmiregistry \
  26. && echo "export JAVA_HOME=/opt/jdk1.8.0_66" >> /.profile
  27. # Installing Go server
  28. RUN cd /tmp \
  29. && curl -sL -o go-server.deb "https://download.go.cd/binaries/${GO_SERVER_VERSION}-${GO_SERVER_BUILD}/deb/go-server-${GO_SERVER_VERSION}-${GO_SERVER_BUILD}.deb" \
  30. && dpkg -i go-server.deb \
  31. && rm -f go-server.deb \
  32. && sed -i -e "s/DAEMON=Y/DAEMON=N/" /etc/default/go-server \
  33. && sed -i -e 's#JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre"#JAVA_HOME="/opt/jdk1.8.0_66/jre"#' /etc/default/go-server
  34. RUN git config --global url."https://".insteadOf git://
  35. RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
  36. VOLUME ["/var/lib/go-server", "/var/log/go-server", "/etc/go", "/var/go/.ssh"]
  37. # Building CloudFoundry plugin
  38. RUN cd /tmp \
  39. && curl -sL -o springer-gocd-cloudfoundry-plugin-2.0.1.jar "https://github.com/Sounie/springer-gocd-cloudfoundry-plugin/releases/download/v2.0.0/springer-gocd-cloudfoundry-plugin-2.0.0.jar"
  40. # expose ports
  41. EXPOSE 8153 8154
  42. ENV SERVER_MEM 512m
  43. ENV SERVER_MAX_MEM 1024m
  44. ENV AGENT_KEY ""
  45. CMD if [ ! -f /var/lib/go-server/plugins/external/springer-gocd-cloudfoundry-plugin-2.0.1.jar ]]; then \
  46. mkdir -p /var/lib/go-server/plugins/external; \
  47. cp /tmp/springer-gocd-cloudfoundry-plugin-2.0.1.jar /var/lib/go-server/plugins/external/springer-gocd-cloudfoundry-plugin-2.0.1.jar; \
  48. fi; \
  49. (/bin/su - $go -c "/usr/share/go-server/server.sh &"); \
  50. until curl -s -o /dev/null 'http://localhost:8153'; \
  51. do \
  52. sleep 1; \
  53. done; \
  54. if [ -n "$AGENT_KEY" ]]; then \
  55. sed -i -e 's/agentAutoRegisterKey="[^"]*" *//' -e 's#\(<server\)\(.*artifactsdir.*\)#\1 agentAutoRegisterKey="'$AGENT_KEY'"\2#' /etc/go/cruise-config.xml; \
  56. fi; \
  57. exec tail -F /var/log/go-server/*