From 25c0056a7846168dbc5cc86615039ad8d1e9a35d Mon Sep 17 00:00:00 2001 From: Simon Hrabos Date: Fri, 20 Sep 2019 15:19:24 +0200 Subject: small, multi-platform (amd64, arm64) images Modify fproxy, rproxy and tproxy-config docker container image due to arm64 compatibility Issue-ID: INT-1174 Issue-ID: INT-1175 Issue-ID: INT-1176 Signed-off-by: Simon Hrabos Change-Id: Ibbf9e1d15bea9ebb1b82ff50c8671927c68be2ed --- sidecar/fproxy/pom.xml | 112 +++++++++++++-------- sidecar/fproxy/src/main/assembly/descriptor.xml | 29 ++++++ sidecar/fproxy/src/main/docker/Dockerfile | 31 +++--- sidecar/pom.xml | 2 +- sidecar/rproxy/pom.xml | 76 ++++++++++---- sidecar/rproxy/src/main/assembly/descriptor.xml | 29 ++++++ sidecar/rproxy/src/main/docker/Dockerfile | 30 ++---- sidecar/tproxy-config/pom.xml | 105 +++++++++++-------- .../tproxy-config/src/main/assembly/descriptor.xml | 18 ++++ sidecar/tproxy-config/src/main/docker/Dockerfile | 2 +- 10 files changed, 291 insertions(+), 143 deletions(-) create mode 100644 sidecar/fproxy/src/main/assembly/descriptor.xml create mode 100644 sidecar/rproxy/src/main/assembly/descriptor.xml create mode 100644 sidecar/tproxy-config/src/main/assembly/descriptor.xml (limited to 'sidecar') diff --git a/sidecar/fproxy/pom.xml b/sidecar/fproxy/pom.xml index 8875dd8..a84ee98 100644 --- a/sidecar/fproxy/pom.xml +++ b/sidecar/fproxy/pom.xml @@ -27,6 +27,10 @@ 2.1.14-SNAPSHOT + + ${project.build.directory}/${project.artifactId}-build/ + + fproxy jar @@ -116,50 +120,78 @@ false 1 + -Xmx1024m -XX:MaxPermSize=256m - org.apache.maven.plugins - maven-resources-plugin - 3.0.2 - - - copy-docker-file - package - - copy-resources - - - target - true - - - ${basedir}/src/main/docker - true - - - ${basedir}/src/main/bin/ - true - - - - - - + maven-assembly-plugin + + + src/main/assembly/descriptor.xml + + + + + make-assembly + package + + single + + + + - com.spotify - docker-maven-plugin - 0.4.11 - - true - docker-hub - ${docker.push.registry}/onap/${project.artifactId} - ${docker.location} - - latest - - true - + io.fabric8 + docker-maven-plugin + 0.28.0 + + true + ${docker.apiVersion} + ${docker.pull.registry} + ${docker.push.registry} + docker-hub + ${docker.location} + + latest + + true + + + ${docker.push.registry}/onap/${project.artifactId} + + try + ${project.basedir}/src/main/docker + + latest + + + + + + ${fproxy.build.dir} + /${project.artifactId} + + + + + + + + + + + generate-images + install + + + + push-images + deploy + + push + + + org.apache.maven.plugins diff --git a/sidecar/fproxy/src/main/assembly/descriptor.xml b/sidecar/fproxy/src/main/assembly/descriptor.xml new file mode 100644 index 0000000..eb645f2 --- /dev/null +++ b/sidecar/fproxy/src/main/assembly/descriptor.xml @@ -0,0 +1,29 @@ + + build + false + + dir + + + + ${project.basedir}/src/main/bin + /bin + + **/* + + + + ${project.build.directory} + / + + *.jar + + + Dockerfile + *.sh + + + + diff --git a/sidecar/fproxy/src/main/docker/Dockerfile b/sidecar/fproxy/src/main/docker/Dockerfile index d91f0e3..4537e24 100644 --- a/sidecar/fproxy/src/main/docker/Dockerfile +++ b/sidecar/fproxy/src/main/docker/Dockerfile @@ -1,35 +1,28 @@ -FROM ubuntu:14.04 +FROM openjdk:8-alpine ARG MICRO_HOME=/opt/app/fproxy ARG BIN_HOME=$MICRO_HOME/bin ARG JAR_FILE=fproxy-exec.jar -RUN apt-get update - -# Install and setup java8 -RUN apt-get update && apt-get install -y software-properties-common -## sudo -E is required to preserve the environment. If you remove that line, it will most like freeze at this step -RUN sudo -E add-apt-repository ppa:openjdk-r/ppa && apt-get update && apt-get install -y openjdk-8-jdk - -RUN sudo dpkg --purge --force-depends ca-certificates-java -RUN sudo apt-get install ca-certificates-java +RUN apk update && \ + apk add ca-certificates ## Setup JAVA_HOME, this is useful for docker commandline -ENV JAVA_HOME usr/lib/jvm/java-8-openjdk-$(dpkg --print-architecture) +ENV JAVA_HOME usr/lib/jvm/java-1.8-openjdk RUN export JAVA_HOME # Build up the deployment folder structure RUN mkdir -p $MICRO_HOME -COPY ${JAR_FILE} $MICRO_HOME -RUN mkdir -p $BIN_HOME -COPY *.sh $BIN_HOME -RUN chmod 755 $BIN_HOME/* -RUN ln -s /logs $MICRO_HOME/logs -RUN mkdir /logs +WORKDIR $MICRO_HOME +COPY maven/fproxy/ . +RUN chmod 755 $BIN_HOME/* && \ + mkdir /logs && \ + ln -s /logs $MICRO_HOME/logs # Create the appuser -RUN groupadd -r appgroup && \ - useradd -r -u 1001 -g appgroup appuser && \ +RUN addgroup --system appgroup && \ + adduser --system --uid 1001 --ingroup appgroup appuser && \ chown -R appuser:appgroup $MICRO_HOME && \ chmod 777 /logs USER appuser + CMD ["/opt/app/fproxy/bin/start.sh"] diff --git a/sidecar/pom.xml b/sidecar/pom.xml index 6708b3e..b0df6f2 100644 --- a/sidecar/pom.xml +++ b/sidecar/pom.xml @@ -55,7 +55,7 @@ 2.1.1.RELEASE 5.1.3.RELEASE - ${basedir}/target + ${basedir}/target/build diff --git a/sidecar/rproxy/pom.xml b/sidecar/rproxy/pom.xml index e789287..8e4ac38 100644 --- a/sidecar/rproxy/pom.xml +++ b/sidecar/rproxy/pom.xml @@ -27,6 +27,10 @@ 2.1.14-SNAPSHOT + + ${project.build.directory}/${project.artifactId}-build/ + + rproxy jar @@ -128,50 +132,78 @@ false 1 + -Xmx1024m -XX:MaxPermSize=256m - org.apache.maven.plugins - maven-resources-plugin - 3.0.2 + maven-assembly-plugin + + + src/main/assembly/descriptor.xml + + - copy-docker-file + make-assembly package - copy-resources + single - - target - true - - - ${basedir}/src/main/docker - true - - - ${basedir}/src/main/bin/ - true - - - - com.spotify + io.fabric8 docker-maven-plugin - 0.4.11 + 0.28.0 true + ${docker.apiVersion} + ${docker.pull.registry} + ${docker.push.registry} docker-hub - ${docker.push.registry}/onap/${project.artifactId} ${docker.location} latest true + + + ${docker.push.registry}/onap/${project.artifactId} + + try + ${project.basedir}/src/main/docker + + latest + + + + + + ${fproxy.build.dir} + /${project.artifactId} + + + + + + + + + + generate-images + install + + + + push-images + deploy + + push + + + org.apache.maven.plugins diff --git a/sidecar/rproxy/src/main/assembly/descriptor.xml b/sidecar/rproxy/src/main/assembly/descriptor.xml new file mode 100644 index 0000000..16b21de --- /dev/null +++ b/sidecar/rproxy/src/main/assembly/descriptor.xml @@ -0,0 +1,29 @@ + + build + false + + dir + + + + ${project.basedir}/src/main/bin + /bin + + **/* + + + + ${project.build.directory} + / + + *.jar + + + Dockerfile + *.sh + + + + diff --git a/sidecar/rproxy/src/main/docker/Dockerfile b/sidecar/rproxy/src/main/docker/Dockerfile index 56b32fa..6311e9e 100644 --- a/sidecar/rproxy/src/main/docker/Dockerfile +++ b/sidecar/rproxy/src/main/docker/Dockerfile @@ -1,34 +1,26 @@ -FROM ubuntu:14.04 +FROM openjdk:8-alpine ARG MICRO_HOME=/opt/app/rproxy ARG BIN_HOME=$MICRO_HOME/bin ARG JAR_FILE=rproxy-exec.jar -RUN apt-get update - -# Install and setup java8 -RUN apt-get update && apt-get install -y software-properties-common -## sudo -E is required to preserve the environment. If you remove that line, it will most like freeze at this step -RUN sudo -E add-apt-repository ppa:openjdk-r/ppa && apt-get update && apt-get install -y openjdk-8-jdk - -RUN sudo dpkg --purge --force-depends ca-certificates-java -RUN sudo apt-get install ca-certificates-java +RUN apk update && \ + apk add ca-certificates ## Setup JAVA_HOME, this is useful for docker commandline -ENV JAVA_HOME usr/lib/jvm/java-8-openjdk-$(dpkg --print-architecture) +ENV JAVA_HOME usr/lib/jvm/java-1.8-openjdk RUN export JAVA_HOME # Build up the deployment folder structure RUN mkdir -p $MICRO_HOME -COPY ${JAR_FILE} $MICRO_HOME -RUN mkdir -p $BIN_HOME -COPY *.sh $BIN_HOME -RUN chmod 755 $BIN_HOME/* -RUN ln -s /logs $MICRO_HOME/logs -RUN mkdir /logs +WORKDIR $MICRO_HOME +COPY maven/rproxy/ . +RUN chmod 755 $BIN_HOME/* && \ + mkdir /logs && \ + ln -s /logs $MICRO_HOME/logs # Create the appuser -RUN groupadd -r appgroup && \ - useradd -r -u 1001 -g appgroup appuser && \ +RUN addgroup --system appgroup && \ + adduser --system -u 1001 -g appgroup appuser && \ chown -R appuser:appgroup $MICRO_HOME && \ chmod 777 /logs USER appuser diff --git a/sidecar/tproxy-config/pom.xml b/sidecar/tproxy-config/pom.xml index be88bb3..d734322 100644 --- a/sidecar/tproxy-config/pom.xml +++ b/sidecar/tproxy-config/pom.xml @@ -37,7 +37,7 @@ UTF-8 UTF-8 3.5.32 - ${basedir}/target + ${project.basedir}/target/${project.artifactId}-${project.version}-build @@ -65,50 +65,73 @@ + + + maven-assembly-plugin + + + src/main/assembly/descriptor.xml + + + + + make-assembly + package + + single + + + + - org.apache.maven.plugins - maven-resources-plugin - 3.0.2 + io.fabric8 + docker-maven-plugin + 0.28.0 + + true + ${docker.apiVersion} + ${docker.pull.registry} + ${docker.push.registry} + + + ${docker.push.registry}/onap/${project.artifactId} + + try + ${project.basedir}/src/main/docker + + latest + + + + + + ${docker.location} + /${project.artifactId} + + + + + + + + - - copy-docker-file - package - - copy-resources - - - target - true - - - ${basedir}/src/main/docker - true - - - ${basedir}/src/main/bin/ - true - - - - - - - - com.spotify - docker-maven-plugin - 0.4.11 - - true - docker-hub - ${docker.push.registry}/onap/${project.artifactId} - ${docker.location} - - latest - - true - + + generate-images + install + + + + push-images + deploy + + push + + + + org.apache.maven.plugins maven-deploy-plugin diff --git a/sidecar/tproxy-config/src/main/assembly/descriptor.xml b/sidecar/tproxy-config/src/main/assembly/descriptor.xml new file mode 100644 index 0000000..b53f64e --- /dev/null +++ b/sidecar/tproxy-config/src/main/assembly/descriptor.xml @@ -0,0 +1,18 @@ + + build + false + + dir + + + + ${project.basedir}/src/main/bin + / + + **/* + + + + diff --git a/sidecar/tproxy-config/src/main/docker/Dockerfile b/sidecar/tproxy-config/src/main/docker/Dockerfile index b95cf74..4851a20 100644 --- a/sidecar/tproxy-config/src/main/docker/Dockerfile +++ b/sidecar/tproxy-config/src/main/docker/Dockerfile @@ -1,6 +1,6 @@ FROM alpine:3.6 RUN apk add --update iptables curl bash -COPY start.sh /start.sh +COPY maven/tproxy-config/start.sh /start.sh RUN chmod 755 /start.sh #CMD start.sh ENTRYPOINT ["/start.sh"] -- cgit 1.2.3-korg