Febbweiss 9 anos atrás
pai
commit
f1090c4fa0

+ 101 - 79
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

+ 9 - 7
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
-

+ 9 - 7
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

+ 10 - 19
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
-

+ 6 - 2
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
 

+ 20 - 8
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
 

+ 8 - 8
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#\(<server\)\(.*artifactsdir.*\)#\1 agentAutoRegisterKey="'$AGENT_KEY'"\2#' /etc/go/cruise-config.xml; \
      fi; \
      exec tail -F /var/log/go-server/*
-
-