From f1090c4fa083df258a9e6ea1903922fc8ce7647f Mon Sep 17 00:00:00 2001 From: Febbweiss Date: Fri, 15 Apr 2016 13:48:14 +0200 Subject: [PATCH] wip --- docker-compose.yml | 180 ++++++++++++++++------------- gocd-agent-cloudfoundry/Dockerfile | 16 +-- gocd-agent-docker/Dockerfile | 16 +-- gocd-agent-jdk8/Dockerfile | 29 ++--- gocd-agent-nodejs/Dockerfile | 8 +- gocd-agent/Dockerfile | 28 +++-- gocd-server/Dockerfile | 16 +-- 7 files changed, 163 insertions(+), 130 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index d73503e..c2de200 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,79 +1,101 @@ -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=gocdkey -gocd-agent: - build: gocd-agent/. - container_name: gocd-agent - links: - - gocd-server - environment: - - 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=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=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=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 +version: '2' +services: + gocd-server: + build: + context: gocd-server/. + args: + GO_SERVER_VERSION: 16.3.0 + GO_SERVER_BUILD: 3183 + 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=gocdkey + gocd-agent: + build: gocd-agent/. + container_name: gocd-agent + links: + - gocd-server + environment: + - AGENT_KEY=gocdkey + - AGENT_RESOURCES=java,node,cf + - GO_SERVER=gocd-server + - GO_SERVER_PORT=8153 + gocd-agent-jdk8: + build: + context: gocd-agent-jdk8/. + args: + GO_AGENT_VERSION: 16.3.0 + GO_AGENT_BUILD: 3183 + container_name: gocd-agent-jdk8 + links: + - gocd-server + environment: + - AGENT_KEY=gocdkey + - AGENT_RESOURCES=java + - GO_SERVER=gocd-server + - GO_SERVER_PORT=8153 + gocd-agent-nodejs: + build: + context: gocd-agent-nodejs/. + args: + GO_AGENT_VERSION: 16.3.0 + GO_AGENT_BUILD: 3183 + container_name: gocd-agent-nodejs + links: + - gocd-server + volumes: + - ./mnt/var/log:/var/log + environment: + - AGENT_KEY=gocdkey + - AGENT_RESOURCES=node + - GO_SERVER=gocd-server + - GO_SERVER_PORT=8153 + gocd-agent-cloudfoundry: + build: + context: gocd-agent-cloudfoundry/. + args: + GO_AGENT_VERSION: 16.3.0 + GO_AGENT_BUILD: 3183 + container_name: gocd-agent-cf + links: + - gocd-server + environment: + - AGENT_KEY=gocdkey + - AGENT_RESOURCES=cf + - GO_SERVER=gocd-server + - GO_SERVER_PORT=8153 + gocd-agent-docker: + build: + context: gocd-agent-docker/. + args: + GO_AGENT_VERSION: 16.3.0 + GO_AGENT_BUILD: 3183 + 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 a9229cc..0a336a3 100644 --- a/gocd-agent-cloudfoundry/Dockerfile +++ b/gocd-agent-cloudfoundry/Dockerfile @@ -1,5 +1,8 @@ FROM alpine +ARG GO_AGENT_VERSION=16.1.0 +ARG GO_AGENT_BUILD=2855 + ENV JAVA_HOME="/usr/lib/jvm/default-jvm" RUN apk update \ @@ -14,17 +17,17 @@ RUN apk update \ # Installing CloudFoundry RUN cd /usr/local/bin \ - && curl -L "https://cli.run.pivotal.io/stable?release=linux64-binary&source=github" | tar -zx \ + && curl -sL "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 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 curl -sL -o go-agent.zip "https://download.go.cd/binaries/${GO_AGENT_VERSION}-${GO_AGENT_BUILD}/generic/go-agent-${GO_AGENT_VERSION}-${GO_AGENT_BUILD}.zip" \ + && unzip go-agent.zip \ + && mv go-agent-${GO_AGENT_VERSION} go-agent \ + && rm go-agent.zip RUN git config --global url."https://".insteadOf git:// @@ -38,7 +41,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; \ (/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 index 288707a..67d5e18 100644 --- a/gocd-agent-docker/Dockerfile +++ b/gocd-agent-docker/Dockerfile @@ -1,5 +1,8 @@ FROM docker +ARG GO_AGENT_VERSION=16.1.0 +ARG GO_AGENT_BUILD=2855 + ENV JAVA_HOME="/usr/lib/jvm/default-jvm" RUN apk update \ @@ -13,10 +16,10 @@ RUN apk update \ # 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 curl -sL -o go-agent.zip "https://download.go.cd/binaries/${GO_AGENT_VERSION}-${GO_AGENT_BUILD}/generic/go-agent-${GO_AGENT_VERSION}-${GO_AGENT_BUILD}.zip" \ + && unzip go-agent.zip \ + && mv go-agent-${GO_AGENT_VERSION} go-agent \ + && rm go-agent.zip RUN rm -rf /tmp/* /var/tmp/* /var/cache/apk/* @@ -30,7 +33,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; \ - (/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 - + (/var/lib/go-agent/agent.sh &); (/usr/local/bin/docker daemon -p /var/run/docker-ssd.pid &);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-jdk8/Dockerfile b/gocd-agent-jdk8/Dockerfile index 95ad56d..65739e9 100644 --- a/gocd-agent-jdk8/Dockerfile +++ b/gocd-agent-jdk8/Dockerfile @@ -1,5 +1,8 @@ FROM frolvlad/alpine-oraclejdk8 +ARG GO_AGENT_VERSION=16.1.0 +ARG GO_AGENT_BUILD=2855 + RUN apk update \ && apk add --no-cache \ libc6-compat \ @@ -7,36 +10,25 @@ RUN apk update \ git \ subversion \ bash \ + libstdc++ \ && 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 \ + && unzip -q 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 -#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 - 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 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 curl -sL -o go-agent.zip "https://download.go.cd/binaries/${GO_AGENT_VERSION}-${GO_AGENT_BUILD}/generic/go-agent-${GO_AGENT_VERSION}-${GO_AGENT_BUILD}.zip" \ + && unzip -q go-agent.zip \ + && mv go-agent-${GO_AGENT_VERSION} go-agent \ + && rm go-agent.zip RUN git config --global url."https://".insteadOf git:// @@ -50,7 +42,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; \ (/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 a0b72a4..aceb060 100644 --- a/gocd-agent-nodejs/Dockerfile +++ b/gocd-agent-nodejs/Dockerfile @@ -1,5 +1,8 @@ FROM debian +ARG GO_AGENT_VERSION=16.1.0 +ARG GO_AGENT_BUILD=2855 + RUN apt-get clean && apt-get update \ && apt-get install -y \ curl \ @@ -14,11 +17,12 @@ RUN curl -sL https://deb.nodesource.com/setup_5.x | bash -E - \ build-essential \ nodejs \ && apt-get clean \ - && rm -rf /var/lib/apt/listss/* + && rm -rf /var/lib/apt/listss/* \ + && mkdir -p /data/db # Installing Go agent RUN cd /tmp \ - && curl -sL -o go-agent.deb "https://download.go.cd/binaries/16.3.0-3183/deb/go-agent-16.3.0-3183.deb" \ + && curl -sL -o go-agent.deb "https://download.go.cd/binaries/${GO_AGENT_VERSION}-${GO_AGENT_BUILD}/deb/go-agent-${GO_AGENT_VERSION}-${GO_AGENT_BUILD}.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 diff --git a/gocd-agent/Dockerfile b/gocd-agent/Dockerfile index 48d6c9f..c25722c 100644 --- a/gocd-agent/Dockerfile +++ b/gocd-agent/Dockerfile @@ -1,25 +1,37 @@ FROM node +ARG GO_AGENT_VERSION=16.1.0 +ARG GO_AGENT_BUILD=2855 + RUN apt-get clean && apt-get update \ && apt-get install -y \ curl \ git \ subversion \ + unzip \ && 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 \ +RUN apt-get clean \ && rm -rf /var/lib/apt/listss/* /tmp/* /var/tmp/* +RUN cd /var/lib \ + && 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 \ + && curl -sL -o gradle-2.11-all.zip "https://services.gradle.org/distributions/gradle-2.11-all.zip" \ + && unzip -q 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 + +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 + 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 \ +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 - && \ + 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 \ @@ -38,8 +50,8 @@ RUN cd /tmp \ # Installing Go agent RUN cd /tmp \ - && 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 \ + && curl -sL -o go-agent.deb "https://download.go.cd/binaries/${GO_AGENT_VERSION}-${GO_AGENT_BUILD}/deb/go-agent-${GO_AGENT_VERSION}-${GO_AGENT_BUILD}.deb" \ + && dpkg -i --ignore-depends=java7-runtime-headless -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 diff --git a/gocd-server/Dockerfile b/gocd-server/Dockerfile index c4acd24..cfec0a3 100644 --- a/gocd-server/Dockerfile +++ b/gocd-server/Dockerfile @@ -1,9 +1,12 @@ FROM debian +ARG GO_SERVER_VERSION=16.1.0 +ARG GO_SERVER_BUILD=2855 + RUN apt-get clean && apt-get update \ - && apt-get install -y \ + && apt-get install -y \ curl \ - default-jre-headless + default-jre-headless RUN apt-get clean && apt-get install -y \ git \ subversion @@ -13,9 +16,8 @@ RUN apt-get clean && apt-get install -y gradle \ # Setting Java8 as default Java 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 \ +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 - && \ + 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 \ @@ -28,7 +30,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/binaries/16.1.0-2855/deb/go-server-16.1.0-2855.deb" \ + && 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" \ && dpkg -i go-server.deb \ && rm -f go-server.deb \ && sed -i -e "s/DAEMON=Y/DAEMON=N/" /etc/default/go-server \ @@ -64,5 +66,3 @@ CMD if [ ! -f /var/lib/go-server/plugins/external/springer-gocd-cloudfoundry-plu sed -i -e 's/agentAutoRegisterKey="[^"]*" *//' -e 's#\(