diff --git a/docker-compose.yml b/docker-compose.yml index 7bfc8ae..d73503e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,45 +1,79 @@ gocd-server: build: gocd-server/. + container_name: gocd-server ports: - "8153:8153" volumes: - ./mnt/var/lib/go-server:/var/lib/go-server - ./mnt/etc/go:/etc/go - ./mnt/var/log/go-server:/var/log/go-server + links: + - nexus environment: - - AGENT_KEY=opensaasgocd + - AGENT_KEY=gocdkey gocd-agent: build: gocd-agent/. + container_name: gocd-agent links: - gocd-server environment: - - AGENT_KEY=opensaasgocd + - AGENT_KEY=gocdkey + - AGENT_RESOURCES=java,node,cf - GO_SERVER=gocd-server - GO_SERVER_PORT=8153 gocd-agent-jdk8: build: gocd-agent-jdk8/. + container_name: gocd-agent-jdk8 links: - gocd-server environment: - - AGENT_KEY=opensaasgocd + - AGENT_KEY=gocdkey - AGENT_RESOURCES=java - GO_SERVER=gocd-server - GO_SERVER_PORT=8153 gocd-agent-nodejs: build: gocd-agent-nodejs/. + container_name: gocd-agent-nodejs links: - gocd-server + volumes: + - ./mnt/var/log:/var/log environment: - - AGENT_KEY=opensaasgocd + - AGENT_KEY=gocdkey - AGENT_RESOURCES=node - GO_SERVER=gocd-server - GO_SERVER_PORT=8153 gocd-agent-cloudfoundry: build: gocd-agent-cloudfoundry/. + container_name: gocd-agent-cf links: - gocd-server environment: - - AGENT_KEY=opensaasgocd + - AGENT_KEY=gocdkey - AGENT_RESOURCES=cf - GO_SERVER=gocd-server - GO_SERVER_PORT=8153 +gocd-agent-docker: + build: gocd-agent-docker/. + container_name: gocd-agent-docker + links: + - gocd-server + environment: + - AGENT_KEY=gocdkey + - AGENT_RESOURCES=docker + - GO_SERVER=gocd-server + - GO_SERVER_PORT=8153 +nexus: + image: sonatype/nexus + container_name: nexus + ports: + - "8081:8081" +postfix: + image: juanluisbaptiste/postfix:latest + ports: + - "25:25" + environment: + SMTP_SERVER: smtp.mycompany.com + SMTP_USERNAME: user@mycompany.com + SMTP_PASSWORD: changeme + SERVER_HOSTNAME: helpdesk.mycompany.com diff --git a/gocd-agent-cloudfoundry/Dockerfile b/gocd-agent-cloudfoundry/Dockerfile index 27918b8..a9229cc 100644 --- a/gocd-agent-cloudfoundry/Dockerfile +++ b/gocd-agent-cloudfoundry/Dockerfile @@ -1,35 +1,44 @@ -FROM debian +FROM alpine -RUN apt-get clean && apt-get update \ - && apt-get install -y \ +ENV JAVA_HOME="/usr/lib/jvm/default-jvm" + +RUN apk update \ + && apk add --no-cache \ + libc6-compat \ curl \ - default-jre-headless \ git \ subversion \ - && apt-get clean \ - && rm -rf /var/lib/apt/listss/* + openjdk7-jre-base \ + bash \ + && ln -fs /bin/bash /bin/sh # Installing CloudFoundry -RUN cd /tmp \ - && curl -sL -o cf-cli-installer_6.15.0_x86-64.deb "https://cli.run.pivotal.io/stable?release=debian64&version=6.15.0&source=github-rel" \ - && dpkg -i -E cf-cli-installer_6.15.0_x86-64.deb \ +RUN cd /usr/local/bin \ + && curl -L "https://cli.run.pivotal.io/stable?release=linux64-binary&source=github" | tar -zx \ + && mkdir /lib64 \ + && ln -s /lib/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2 \ && cf add-plugin-repo bluemix-cf-staging http://plugins.ng.bluemix.net >/dev/null 2>&1 # Installing Go agent -RUN cd /tmp \ - && curl -sL -o go-agent.deb "https://download.go.cd/gocd-deb/go-agent-15.2.0-2248.deb" \ - && dpkg -i -E go-agent.deb \ - && sed -i -e 's#GO_SERVER=127.0.0.1#GO_SERVER=gocd-server#' /etc/default/go-agent +WORKDIR /var/lib +RUN curl -sL -o go-agent-16.1.0.zip "https://download.go.cd/binaries/16.1.0-2855/generic/go-agent-16.1.0-2855.zip" \ + && unzip go-agent-16.1.0.zip \ + && mv go-agent-16.1.0 go-agent \ + && rm go-agent-16.1.0.zip RUN git config --global url."https://".insteadOf git:// +RUN rm -rf /tmp/* /var/tmp/* /var/cache/apk/* + #VOLUME ["/var/lib/go-agent", "/var/log/go-agent", "/var/go/.ssh"] COPY autoregister.properties /var/lib/go-agent/config/autoregister.properties +#ENTRYPOINT ["/bin/bash", "-c"] + CMD until curl -s -o /dev/null "http://${GO_SERVER}:${GO_SERVER_PORT}"; do sleep 5; done; \ - if [ -n "$AGENT_KEY" ]]; then \ + if [ -n "$AGENT_KEY" ]; then \ sed -i -e 's/=.*/=/g' -e "s/key=/key=$AGENT_KEY/" -e "s/resources=/resources=$AGENT_RESOURCES/" /var/lib/go-agent/config/autoregister.properties; \ fi; \ - (/usr/share/go-agent/agent.sh &); while [ ! -f /var/log/go-agent/go-agent-bootstrapper.log ]; do sleep 1; done; exec tail -F /var/log/go-agent/* + (/var/lib/go-agent/agent.sh &); while [ ! -f /var/lib/go-agent/go-agent-bootstrapper.log ]; do sleep 1; done; exec tail -F /var/lib/go-agent/*.log diff --git a/gocd-agent-docker/Dockerfile b/gocd-agent-docker/Dockerfile new file mode 100644 index 0000000..288707a --- /dev/null +++ b/gocd-agent-docker/Dockerfile @@ -0,0 +1,36 @@ +FROM docker + +ENV JAVA_HOME="/usr/lib/jvm/default-jvm" + +RUN apk update \ + && apk add --no-cache \ + curl \ + git \ + subversion \ + openjdk7-jre-base \ + bash \ + && ln -fs /bin/bash /bin/sh + +# Installing Go agent +WORKDIR /var/lib +RUN curl -sL -o go-agent-16.1.0.zip "https://download.go.cd/binaries/16.1.0-2855/generic/go-agent-16.1.0-2855.zip" \ + && unzip go-agent-16.1.0.zip \ + && mv go-agent-16.1.0 go-agent \ + && rm go-agent-16.1.0.zip + +RUN rm -rf /tmp/* /var/tmp/* /var/cache/apk/* + +RUN git config --global url."https://".insteadOf git:// + +#VOLUME ["/var/lib/go-agent", "/var/log/go-agent", "/var/go/.ssh"] + +COPY autoregister.properties /var/lib/go-agent/config/autoregister.properties + +#ENTRYPOINT ["/bin/bash", "-c"] + +CMD until curl -s -o /dev/null "http://${GO_SERVER}:${GO_SERVER_PORT}"; do sleep 5; done; \ + if [ -n "$AGENT_KEY" ]; then \ + sed -i -e 's/=.*/=/g' -e "s/key=/key=$AGENT_KEY/" -e "s/resources=/resources=$AGENT_RESOURCES/" /var/lib/go-agent/config/autoregister.properties; \ + fi; \ + (/var/lib/go-agent/agent.sh &); while [ ! -f /var/lib/go-agent/go-agent-bootstrapper.log ]; do sleep 1; done; exec tail -F /var/lib/go-agent/*.log + diff --git a/gocd-agent-docker/autoregister.properties b/gocd-agent-docker/autoregister.properties new file mode 100644 index 0000000..0ad1f33 --- /dev/null +++ b/gocd-agent-docker/autoregister.properties @@ -0,0 +1,2 @@ +agent.auto.register.key= +agent.auto.register.resources= diff --git a/gocd-agent-jdk8/Dockerfile b/gocd-agent-jdk8/Dockerfile index 4d239a8..95ad56d 100644 --- a/gocd-agent-jdk8/Dockerfile +++ b/gocd-agent-jdk8/Dockerfile @@ -1,46 +1,56 @@ -FROM debian +FROM frolvlad/alpine-oraclejdk8 -RUN apt-get clean && apt-get update \ - && apt-get install -y \ +RUN apk update \ + && apk add --no-cache \ + libc6-compat \ curl \ - default-jre-headless \ git \ - subversion -RUN apt-get clean && apt-get install -y maven -RUN apt-get clean && apt-get install -y gradle \ - && apt-get clean \ - && rm -rf /var/lib/apt/listss/* + subversion \ + bash \ + && ln -fs /bin/bash /bin/sh + +WORKDIR /var/lib +RUN curl -sL "http://wwwftp.ciril.fr/pub/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz" | tar -zx +RUN curl -sL -o gradle-2.11-all.zip "https://services.gradle.org/distributions/gradle-2.11-all.zip" \ + && unzip gradle-2.11-all.zip \ + && rm gradle-2.11-all.zip \ + && rm -rf gradle-2.11/samples gradle-2.11/docs gradle-2.11/media gradle-2.11/src -WORKDIR /opt #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 - -ADD binaries/jdk-8u66-linux-x64.tar.gz /opt/. -RUN update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_66/bin/java 120 \ - && update-alternatives --install /usr/bin/keytool keytool /opt/jdk1.8.0_66/bin/keytool 120\ - && update-alternatives --install /usr/bin/rmiregistry rmiregistry /opt/jdk1.8.0_66/bin/rmiregistry 120\ - && update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_66/bin/javac 120 \ - --slave /usr/bin/jar jar /opt/jdk1.8.0_66/bin/jar \ - --slave /usr/bin/rmic rmic /opt/jdk1.8.0_66/bin/rmic\ - && update-alternatives --set java /opt/jdk1.8.0_66/bin/java\ - && update-alternatives --set keytool /opt/jdk1.8.0_66/bin/keytool \ - && update-alternatives --set rmiregistry /opt/jdk1.8.0_66/bin/rmiregistry \ - && echo "export JAVA_HOME=/opt/jdk1.8.0_66" >> /.profile +#ADD binaries/jdk-8u66-linux-x64.tar.gz /opt/. +#RUN update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_66/bin/java 120 \ +# && update-alternatives --install /usr/bin/keytool keytool /opt/jdk1.8.0_66/bin/keytool 120\ +# && update-alternatives --install /usr/bin/rmiregistry rmiregistry /opt/jdk1.8.0_66/bin/rmiregistry 120\ +# && update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_66/bin/javac 120 \ +# --slave /usr/bin/jar jar /opt/jdk1.8.0_66/bin/jar \ +# --slave /usr/bin/rmic rmic /opt/jdk1.8.0_66/bin/rmic\ +# && update-alternatives --set java /opt/jdk1.8.0_66/bin/java\ +# && update-alternatives --set keytool /opt/jdk1.8.0_66/bin/keytool \ +# && update-alternatives --set rmiregistry /opt/jdk1.8.0_66/bin/rmiregistry + +ENV MAVEN_HOME /var/lib/apache-maven-3.3.9 +ENV GRADLE_HOME /var/lib/gradle-2.11 +ENV PATH $PATH:$MAVEN_HOME/bin:$GRADLE_HOME/bin # Installing Go agent -RUN cd /tmp \ - && curl -sL -o go-agent.deb "https://download.go.cd/gocd-deb/go-agent-15.2.0-2248.deb" \ - && dpkg -i -E go-agent.deb \ - && sed -i -e 's#GO_SERVER=127.0.0.1#GO_SERVER=gocd-server#' /etc/default/go-agent \ - && 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-agent +RUN curl -sL -o go-agent-16.1.0.zip "https://download.go.cd/binaries/16.1.0-2855/generic/go-agent-16.1.0-2855.zip" \ + && unzip go-agent-16.1.0.zip \ + && mv go-agent-16.1.0 go-agent \ + && rm go-agent-16.1.0.zip RUN git config --global url."https://".insteadOf git:// +RUN rm -rf /tmp/* /var/tmp/* /var/cache/apk/* + #VOLUME ["/var/lib/go-agent", "/var/log/go-agent", "/var/go/.ssh"] COPY autoregister.properties /var/lib/go-agent/config/autoregister.properties +#ENTRYPOINT ["/bin/bash", "-c"] + CMD until curl -s -o /dev/null "http://${GO_SERVER}:${GO_SERVER_PORT}"; do sleep 5; done; \ - if [ -n "$AGENT_KEY" ]]; then \ + if [ -n "$AGENT_KEY" ]; then \ sed -i -e 's/=.*/=/g' -e "s/key=/key=$AGENT_KEY/" -e "s/resources=/resources=$AGENT_RESOURCES/" /var/lib/go-agent/config/autoregister.properties; \ fi; \ - (/usr/share/go-agent/agent.sh &); while [ ! -f /var/log/go-agent/go-agent-bootstrapper.log ]; do sleep 1; done; exec tail -F /var/log/go-agent/* + (/var/lib/go-agent/agent.sh &); while [ ! -f /var/lib/go-agent/go-agent-bootstrapper.log ]; do sleep 1; done; exec tail -F /var/lib/go-agent/*.log diff --git a/gocd-agent-nodejs/Dockerfile b/gocd-agent-nodejs/Dockerfile index c0beee5..a0b72a4 100644 --- a/gocd-agent-nodejs/Dockerfile +++ b/gocd-agent-nodejs/Dockerfile @@ -5,7 +5,7 @@ RUN apt-get clean && apt-get update \ curl \ default-jre-headless \ git \ - subversion + subversion RUN apt-get clean && apt-get install -y mongodb RUN apt-get clean && apt-get install -y python-dev RUN curl -sL https://deb.nodesource.com/setup_5.x | bash -E - \ @@ -18,7 +18,7 @@ RUN curl -sL https://deb.nodesource.com/setup_5.x | bash -E - \ # Installing Go agent RUN cd /tmp \ - && curl -sL -o go-agent.deb "https://download.go.cd/gocd-deb/go-agent-15.2.0-2248.deb" \ + && curl -sL -o go-agent.deb "https://download.go.cd/binaries/16.3.0-3183/deb/go-agent-16.3.0-3183.deb" \ && dpkg -i -E go-agent.deb \ && sed -i -e 's#GO_SERVER=127.0.0.1#GO_SERVER=gocd-server#' /etc/default/go-agent @@ -30,7 +30,6 @@ COPY autoregister.properties /var/lib/go-agent/config/autoregister.properties CMD until curl -s -o /dev/null "http://${GO_SERVER}:${GO_SERVER_PORT}"; do sleep 5; done; \ if [ -n "$AGENT_KEY" ]]; then \ - sed -i -e 's/=.*/=/g' -e "s/key=/key=$AGENT_KEY/" -e "s/resources=/resources=$AGENT_RESOURCES/" /var/lib/go-agent/config/autoregister.properties; \ + sed -i -e 's/=.*/=/g' -e "s/key=/key=$AGENT_KEY/" -e "s/resources=/resources=$AGENT_RESOURCES/" /var/lib/go-agent/config/autoregister.properties; \ fi; \ (/usr/share/go-agent/agent.sh &); (service mongodb start); while [ ! -f /var/log/go-agent/go-agent-bootstrapper.log ]; do sleep 1; done; exec tail -F /var/log/go-agent/* - diff --git a/gocd-agent/Dockerfile b/gocd-agent/Dockerfile index b7b291c..48d6c9f 100644 --- a/gocd-agent/Dockerfile +++ b/gocd-agent/Dockerfile @@ -1,24 +1,23 @@ -FROM debian +FROM node RUN apt-get clean && apt-get update \ && apt-get install -y \ curl \ git \ - subversion -RUN apt-get clean && apt-get install -y python-dev -RUN curl -sL https://deb.nodesource.com/setup_5.x | bash -E - \ + subversion \ && apt-get update \ && apt-get install -y \ build-essential \ nodejs +RUN apt-get clean && apt-get install -y mongodb RUN apt-get clean && apt-get install -y maven RUN apt-get clean && apt-get install -y gradle \ && apt-get clean \ - && rm -rf /var/lib/apt/listss/* + && rm -rf /var/lib/apt/listss/* /tmp/* /var/tmp/* WORKDIR /opt -#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 - +#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 - ADD binaries/jdk-8u66-linux-x64.tar.gz /opt/. RUN update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_66/bin/java 120 \ && update-alternatives --install /usr/bin/keytool keytool /opt/jdk1.8.0_66/bin/keytool 120\ @@ -36,22 +35,22 @@ RUN cd /tmp \ && curl -sL -o cf-cli-installer_6.15.0_x86-64.deb "https://cli.run.pivotal.io/stable?release=debian64&version=6.15.0&source=github-rel" \ && dpkg -i -E cf-cli-installer_6.15.0_x86-64.deb \ && cf add-plugin-repo bluemix-cf-staging http://plugins.ng.bluemix.net >/dev/null 2>&1 -# && pip install python-openstackclient >/dev/null 2>&1 # Installing Go agent RUN cd /tmp \ - && curl -sL -o go-agent.deb "https://download.go.cd/gocd-deb/go-agent-15.2.0-2248.deb" \ + && curl -sL -o go-agent.deb "https://download.go.cd/binaries/16.1.0-2855/deb/go-agent-16.1.0-2855.deb" \ && dpkg -i -E go-agent.deb \ && sed -i -e 's#GO_SERVER=127.0.0.1#GO_SERVER=gocd-server#' /etc/default/go-agent \ && 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-agent +RUN git config --global url."https://".insteadOf git:// + #VOLUME ["/var/lib/go-agent", "/var/log/go-agent", "/var/go/.ssh"] COPY autoregister.properties /var/lib/go-agent/config/autoregister.properties CMD until curl -s -o /dev/null "http://${GO_SERVER}:${GO_SERVER_PORT}"; do sleep 5; done; \ if [ -n "$AGENT_KEY" ]]; then \ - sed -i -e 's/=.*/=/g' -e "s/key=/key=$AGENT_KEY/" -e "s/resources=/resources=$AGENT_RESOURCES/" /var/lib/go-agent/config/autoregister.properties; \ + sed -i -e 's/=.*/=/g' -e "s/key=/key=$AGENT_KEY/" -e "s/resources=/resources=$AGENT_RESOURCES/" /var/lib/go-agent/config/autoregister.properties; \ fi; \ - (/usr/share/go-agent/agent.sh &); while [ ! -f /var/log/go-agent/go-agent-bootstrapper.log ]; do sleep 1; done; exec tail -F /var/log/go-agent/* - + (/usr/share/go-agent/agent.sh &); (service mongodb start); while [ ! -f /var/log/go-agent/go-agent-bootstrapper.log ]; do sleep 1; done; exec tail -F /var/log/go-agent/* diff --git a/gocd-server/Dockerfile b/gocd-server/Dockerfile index e42cc2f..c4acd24 100644 --- a/gocd-server/Dockerfile +++ b/gocd-server/Dockerfile @@ -9,8 +9,7 @@ RUN apt-get clean && apt-get install -y \ subversion RUN apt-get clean && apt-get install -y maven RUN apt-get clean && apt-get install -y gradle \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* + && apt-get clean # Setting Java8 as default Java WORKDIR /opt @@ -29,7 +28,7 @@ RUN update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_66/bin/java 1 # Installing Go server RUN cd /tmp \ - && curl -sL -o go-server.deb "https://download.go.cd/gocd-deb/go-server-16.1.0-2855.deb" \ + && curl -sL -o go-server.deb "https://download.go.cd/binaries/16.1.0-2855/deb/go-server-16.1.0-2855.deb" \ && dpkg -i go-server.deb \ && rm -f go-server.deb \ && sed -i -e "s/DAEMON=Y/DAEMON=N/" /etc/default/go-server \ @@ -37,6 +36,8 @@ RUN cd /tmp \ RUN git config --global url."https://".insteadOf git:// +RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + VOLUME ["/var/lib/go-server", "/var/log/go-server", "/etc/go", "/var/go/.ssh"] # Building CloudFoundry plugin