Skip to content

Commit

Permalink
Optimize docker files
Browse files Browse the repository at this point in the history
  • Loading branch information
dimabarbul committed Sep 11, 2023
1 parent 3de5da2 commit 5c3be4b
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 53 deletions.
4 changes: 4 additions & 0 deletions build-images.sh
Expand Up @@ -53,6 +53,9 @@ build_docker_image() {
image_tag=$(printf "${CONTAINER_REGISTRY}/ditto-%s" "$(echo "$1" | awk -F ":" '{ print $2 }')")
jvm_args=$(echo "$1" | awk -F ":" '{ print $4 }')
main_class=$(echo "$1" | awk -F ":" '{ print $3 }')
if [ -n "$NO_DOCKER_CACHE" ]; then
no_cache_option=--no-cache
fi;
printf "\nBuilding Docker image <%s> for service module <%s> with jvm_args <%s>\n" \
"$image_tag" \
"$module_name" \
Expand All @@ -67,6 +70,7 @@ build_docker_image() {
--build-arg JVM_CMD_ARGS="$jvm_args" \
--build-arg MAIN_CLASS="$main_class" \
-t "$image_tag":$IMAGE_VERSION \
$no_cache_option \
"$SCRIPTDIR"

if [[ "$PUSH_CONTAINERS" == "true" ]]; then
Expand Down
35 changes: 18 additions & 17 deletions dockerfile-release
Expand Up @@ -11,6 +11,22 @@

FROM docker.io/eclipse-temurin:17-jdk

# Http port
EXPOSE 8080

ENV DITTO_HOME=/opt/ditto \
DITTO_LOGS=/var/log/ditto

RUN set -x \
&& apt-get update \
&& apt-get install -y tini \
&& mkdir -p $DITTO_HOME \
&& mkdir -p $DITTO_LOGS \
&& groupadd --system --gid 1000 ditto \
&& useradd --no-log-init --system --home-dir $DITTO_HOME --shell /bin/sh --gid ditto --uid 1000 ditto \
&& chown -R ditto:ditto $DITTO_LOGS \
&& rm -rf /var/lib/apt/lists/*

ARG MAVEN_REPO=https://repo.eclipse.org/service/local/artifact/maven/content
ARG SERVICE_STARTER
ARG SERVICE_VERSION
Expand All @@ -19,29 +35,14 @@ ARG MAIN_CLASS

ENV HTTP_PORT=8080 \
HOSTING_ENVIRONMENT=Docker \
DITTO_HOME=/opt/ditto \
DITTO_LOGS=/var/log/ditto \
JVM_CMD_ARGS_ENV=${JVM_CMD_ARGS} \
MAIN_CLASS_ENV=${MAIN_CLASS} \
CLASSPATH=/opt/ditto/*:/opt/ditto/extensions/*

# Http port
EXPOSE 8080

RUN set -x \
&& apt-get update \
&& apt-get install -y tini \
&& apt-get install -y wget \
&& mkdir -p $DITTO_HOME \
&& mkdir -p $DITTO_LOGS \
&& groupadd --system --gid 1000 ditto \
&& useradd --no-log-init --system --home-dir $DITTO_HOME --shell /bin/sh --gid ditto --uid 1000 ditto \
&& cd $DITTO_HOME \
&& wget -q --show-progress -O ${SERVICE_STARTER}-${SERVICE_VERSION}-allinone.jar "${MAVEN_REPO}?r=ditto&g=org.eclipse.ditto&a=${SERVICE_STARTER}&v=${SERVICE_VERSION}&c=allinone" \
&& chown -R ditto:ditto $DITTO_HOME \
&& cd $DITTO_LOGS \
&& chown -R ditto:ditto $DITTO_LOGS \
&& apt-get remove -y wget
&& curl -o ${SERVICE_STARTER}-${SERVICE_VERSION}-allinone.jar "${MAVEN_REPO}?r=ditto&g=org.eclipse.ditto&a=${SERVICE_STARTER}&v=${SERVICE_VERSION}&c=allinone" \
&& chown -R ditto:ditto $DITTO_HOME

USER ditto
WORKDIR $DITTO_HOME
Expand Down
35 changes: 17 additions & 18 deletions dockerfile-snapshot
Expand Up @@ -11,6 +11,22 @@

FROM docker.io/eclipse-temurin:17-jdk

# Http port
EXPOSE 8080

ENV DITTO_HOME=/opt/ditto \
DITTO_LOGS=/var/log/ditto

RUN set -x \
&& apt-get update \
&& apt-get install -y tini \
&& mkdir -p $DITTO_HOME \
&& mkdir -p $DITTO_LOGS \
&& groupadd --system --gid 1000 ditto \
&& useradd --no-log-init --system --home-dir $DITTO_HOME --shell /bin/sh --gid ditto --uid 1000 ditto \
&& chown -R ditto:ditto $DITTO_HOME $DITTO_LOGS \
&& rm -rf /var/lib/apt/lists/*

ARG TARGET_DIR
ARG SERVICE_STARTER
ARG SERVICE_VERSION
Expand All @@ -19,30 +35,13 @@ ARG MAIN_CLASS

ENV HTTP_PORT=8080 \
HOSTING_ENVIRONMENT=Docker \
DITTO_HOME=/opt/ditto \
DITTO_LOGS=/var/log/ditto \
JVM_CMD_ARGS_ENV=${JVM_CMD_ARGS} \
MAIN_CLASS_ENV=${MAIN_CLASS} \
CLASSPATH=/opt/ditto/*:/opt/ditto/extensions/*

# Http port
EXPOSE 8080

RUN set -x \
&& apt-get update \
&& apt-get install -y tini \
&& mkdir -p $DITTO_HOME \
&& mkdir -p $DITTO_LOGS \
&& groupadd --system --gid 1000 ditto \
&& useradd --no-log-init --system --home-dir $DITTO_HOME --shell /bin/sh --gid ditto --uid 1000 ditto \
&& cd $DITTO_HOME \
&& chown -R ditto:ditto $DITTO_HOME \
&& cd $DITTO_LOGS \
&& chown -R ditto:ditto $DITTO_LOGS

USER ditto
WORKDIR $DITTO_HOME
ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["sh", "-c", "exec java ${JVM_CMD_ARGS_ENV} ${MAIN_CLASS_ENV}"]

COPY ${TARGET_DIR}/${SERVICE_STARTER}-${SERVICE_VERSION}-allinone.jar $DITTO_HOME
COPY --chown=ditto:ditto ${TARGET_DIR}/${SERVICE_STARTER}-${SERVICE_VERSION}-allinone.jar $DITTO_HOME
35 changes: 17 additions & 18 deletions dockerfile-snapshot-arm64
Expand Up @@ -11,6 +11,22 @@

FROM docker.io/arm64v8/eclipse-temurin:17-jdk

# Http port
EXPOSE 8080

ENV DITTO_HOME=/opt/ditto \
DITTO_LOGS=/var/log/ditto

RUN set -x \
&& apt-get update \
&& apt-get install -y tini \
&& mkdir -p $DITTO_HOME \
&& mkdir -p $DITTO_LOGS \
&& groupadd --system --gid 1000 ditto \
&& useradd --no-log-init --system --home-dir $DITTO_HOME --shell /bin/sh --gid ditto --uid 1000 ditto \
&& chown -R ditto:ditto $DITTO_HOME $DITTO_LOGS \
&& rm -rf /var/lib/apt/lists/*

ARG TARGET_DIR
ARG SERVICE_STARTER
ARG SERVICE_VERSION
Expand All @@ -19,30 +35,13 @@ ARG MAIN_CLASS

ENV HTTP_PORT=8080 \
HOSTING_ENVIRONMENT=Docker \
DITTO_HOME=/opt/ditto \
DITTO_LOGS=/var/log/ditto \
JVM_CMD_ARGS_ENV=${JVM_CMD_ARGS} \
MAIN_CLASS_ENV=${MAIN_CLASS} \
CLASSPATH=/opt/ditto/*:/opt/ditto/extensions/*

# Http port
EXPOSE 8080

RUN set -x \
&& apt-get update \
&& apt-get install -y tini \
&& mkdir -p $DITTO_HOME \
&& mkdir -p $DITTO_LOGS \
&& groupadd --system --gid 1000 ditto \
&& useradd --no-log-init --system --home-dir $DITTO_HOME --shell /bin/sh --gid ditto --uid 1000 ditto \
&& cd $DITTO_HOME \
&& chown -R ditto:ditto $DITTO_HOME \
&& cd $DITTO_LOGS \
&& chown -R ditto:ditto $DITTO_LOGS

USER ditto
WORKDIR $DITTO_HOME
ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["sh", "-c", "exec java ${JVM_CMD_ARGS_ENV} ${MAIN_CLASS_ENV}"]

COPY ${TARGET_DIR}/${SERVICE_STARTER}-${SERVICE_VERSION}-allinone.jar $DITTO_HOME
COPY --chown=ditto:ditto ${TARGET_DIR}/${SERVICE_STARTER}-${SERVICE_VERSION}-allinone.jar $DITTO_HOME

0 comments on commit 5c3be4b

Please sign in to comment.