Skip to content

Instantly share code, notes, and snippets.

@sleroy
Last active October 28, 2018 22:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sleroy/502c013a1865f02b8ceeb38be536a22b to your computer and use it in GitHub Desktop.
Save sleroy/502c013a1865f02b8ceeb38be536a22b to your computer and use it in GitHub Desktop.
maven + gcloud + docker image
# docker build -t sleroy/byoskill-agent:0.1 .
FROM docker:rc
MAINTAINER sleroy <sleroy0@gmail.com>
# GKE build & testing environment for Circle CI 2.0
USER root
ENV NODEJS_VERSION v8
ENV DOCKER_VERSION rc
ARG VERSION=3.26
ARG AGENT_WORKDIR=/home/agent
ARG uid=10000
ARG gid=10000
ENV HOME /home/${user}
LABEL Description="This is a base image, which provides the Jenkins agent executable (slave.jar)" Vendor="Jenkins project" Version="3.23"
RUN mkdir /home/jenkins
WORKDIR /home/jenkins
# Default to UTF-8 file.encoding
ENV LANG C.UTF-8
RUN apk add --update --no-cache \
vim \
curl ca-certificates \
git \
openjdk8 \
git \
zip \
curl \
perl \
coreutils \
bash \
wget \
unzip \
nodejs \
python
# Download GCloud
RUN wget -O google-cloud-sdk.tar.gz https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-222.0.0-linux-x86_64.tar.gz && \
tar -zxvf google-cloud-sdk.tar.gz && \
rm google-cloud-sdk.tar.gz && \
./google-cloud-sdk/install.sh --quiet
# Download MAVEN
RUN wget http://www.pirbot.com/mirrors/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
RUN tar xzf apache-maven-3.5.4-bin.tar.gz
ENV MVN_HOME=/home/jenkins/apache-maven-3.5.4
# Download Gradle
RUN wget https://services.gradle.org/distributions/gradle-4.10.2-bin.zip
RUN unzip gradle-4.10.2-bin.zip
ENV GRADLE_HOME=/home/jenkins/gradle-4.10.2
ENV PATH=/home/jenkins/google-cloud-sdk/bin:/root/.nodebrew/current/bin:$GRADLE_HOME/bin:$PATH
RUN gcloud components update --quiet
RUN gcloud --quiet components install docker-credential-gcr kubectl
# Env variables
RUN curl --create-dirs -sSLo /usr/share/jenkins/slave.jar https://repo.jenkins-ci.org/public/org/jenkins-ci/main/remoting/${VERSION}/remoting-${VERSION}.jar \
&& chmod 755 /usr/share/jenkins \
&& chmod 644 /usr/share/jenkins/slave.jar
ENV AGENT_WORKDIR=${AGENT_WORKDIR}
RUN mkdir /home/${user}/.jenkins && mkdir -p ${AGENT_WORKDIR}
# setup PATH
# setup openjdk environment
ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk/jre
ENV PATH /home/jenkins/google-cloud-sdk/bin:/root/.nodebrew/current/bin:$MVN_HOME/bin:$GRADLE_HOME/bin:$PATH
ENV PATH $PATH:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
RUN java -version
RUN mvn -v
RUN gradle -v
RUN node -v
RUN gcloud -v
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment