Skip to content

Commit 5c3be4b

Browse files
committed
Optimize docker files
1 parent 3de5da2 commit 5c3be4b

4 files changed

+56
-53
lines changed

build-images.sh

+4
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ build_docker_image() {
5353
image_tag=$(printf "${CONTAINER_REGISTRY}/ditto-%s" "$(echo "$1" | awk -F ":" '{ print $2 }')")
5454
jvm_args=$(echo "$1" | awk -F ":" '{ print $4 }')
5555
main_class=$(echo "$1" | awk -F ":" '{ print $3 }')
56+
if [ -n "$NO_DOCKER_CACHE" ]; then
57+
no_cache_option=--no-cache
58+
fi;
5659
printf "\nBuilding Docker image <%s> for service module <%s> with jvm_args <%s>\n" \
5760
"$image_tag" \
5861
"$module_name" \
@@ -67,6 +70,7 @@ build_docker_image() {
6770
--build-arg JVM_CMD_ARGS="$jvm_args" \
6871
--build-arg MAIN_CLASS="$main_class" \
6972
-t "$image_tag":$IMAGE_VERSION \
73+
$no_cache_option \
7074
"$SCRIPTDIR"
7175

7276
if [[ "$PUSH_CONTAINERS" == "true" ]]; then

dockerfile-release

+18-17
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,22 @@
1111

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

14+
# Http port
15+
EXPOSE 8080
16+
17+
ENV DITTO_HOME=/opt/ditto \
18+
DITTO_LOGS=/var/log/ditto
19+
20+
RUN set -x \
21+
&& apt-get update \
22+
&& apt-get install -y tini \
23+
&& mkdir -p $DITTO_HOME \
24+
&& mkdir -p $DITTO_LOGS \
25+
&& groupadd --system --gid 1000 ditto \
26+
&& useradd --no-log-init --system --home-dir $DITTO_HOME --shell /bin/sh --gid ditto --uid 1000 ditto \
27+
&& chown -R ditto:ditto $DITTO_LOGS \
28+
&& rm -rf /var/lib/apt/lists/*
29+
1430
ARG MAVEN_REPO=https://repo.eclipse.org/service/local/artifact/maven/content
1531
ARG SERVICE_STARTER
1632
ARG SERVICE_VERSION
@@ -19,29 +35,14 @@ ARG MAIN_CLASS
1935

2036
ENV HTTP_PORT=8080 \
2137
HOSTING_ENVIRONMENT=Docker \
22-
DITTO_HOME=/opt/ditto \
23-
DITTO_LOGS=/var/log/ditto \
2438
JVM_CMD_ARGS_ENV=${JVM_CMD_ARGS} \
2539
MAIN_CLASS_ENV=${MAIN_CLASS} \
2640
CLASSPATH=/opt/ditto/*:/opt/ditto/extensions/*
2741

28-
# Http port
29-
EXPOSE 8080
30-
3142
RUN set -x \
32-
&& apt-get update \
33-
&& apt-get install -y tini \
34-
&& apt-get install -y wget \
35-
&& mkdir -p $DITTO_HOME \
36-
&& mkdir -p $DITTO_LOGS \
37-
&& groupadd --system --gid 1000 ditto \
38-
&& useradd --no-log-init --system --home-dir $DITTO_HOME --shell /bin/sh --gid ditto --uid 1000 ditto \
3943
&& cd $DITTO_HOME \
40-
&& 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" \
41-
&& chown -R ditto:ditto $DITTO_HOME \
42-
&& cd $DITTO_LOGS \
43-
&& chown -R ditto:ditto $DITTO_LOGS \
44-
&& apt-get remove -y wget
44+
&& curl -o ${SERVICE_STARTER}-${SERVICE_VERSION}-allinone.jar "${MAVEN_REPO}?r=ditto&g=org.eclipse.ditto&a=${SERVICE_STARTER}&v=${SERVICE_VERSION}&c=allinone" \
45+
&& chown -R ditto:ditto $DITTO_HOME
4546

4647
USER ditto
4748
WORKDIR $DITTO_HOME

dockerfile-snapshot

+17-18
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,22 @@
1111

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

14+
# Http port
15+
EXPOSE 8080
16+
17+
ENV DITTO_HOME=/opt/ditto \
18+
DITTO_LOGS=/var/log/ditto
19+
20+
RUN set -x \
21+
&& apt-get update \
22+
&& apt-get install -y tini \
23+
&& mkdir -p $DITTO_HOME \
24+
&& mkdir -p $DITTO_LOGS \
25+
&& groupadd --system --gid 1000 ditto \
26+
&& useradd --no-log-init --system --home-dir $DITTO_HOME --shell /bin/sh --gid ditto --uid 1000 ditto \
27+
&& chown -R ditto:ditto $DITTO_HOME $DITTO_LOGS \
28+
&& rm -rf /var/lib/apt/lists/*
29+
1430
ARG TARGET_DIR
1531
ARG SERVICE_STARTER
1632
ARG SERVICE_VERSION
@@ -19,30 +35,13 @@ ARG MAIN_CLASS
1935

2036
ENV HTTP_PORT=8080 \
2137
HOSTING_ENVIRONMENT=Docker \
22-
DITTO_HOME=/opt/ditto \
23-
DITTO_LOGS=/var/log/ditto \
2438
JVM_CMD_ARGS_ENV=${JVM_CMD_ARGS} \
2539
MAIN_CLASS_ENV=${MAIN_CLASS} \
2640
CLASSPATH=/opt/ditto/*:/opt/ditto/extensions/*
2741

28-
# Http port
29-
EXPOSE 8080
30-
31-
RUN set -x \
32-
&& apt-get update \
33-
&& apt-get install -y tini \
34-
&& mkdir -p $DITTO_HOME \
35-
&& mkdir -p $DITTO_LOGS \
36-
&& groupadd --system --gid 1000 ditto \
37-
&& useradd --no-log-init --system --home-dir $DITTO_HOME --shell /bin/sh --gid ditto --uid 1000 ditto \
38-
&& cd $DITTO_HOME \
39-
&& chown -R ditto:ditto $DITTO_HOME \
40-
&& cd $DITTO_LOGS \
41-
&& chown -R ditto:ditto $DITTO_LOGS
42-
4342
USER ditto
4443
WORKDIR $DITTO_HOME
4544
ENTRYPOINT ["/usr/bin/tini", "--"]
4645
CMD ["sh", "-c", "exec java ${JVM_CMD_ARGS_ENV} ${MAIN_CLASS_ENV}"]
4746

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

dockerfile-snapshot-arm64

+17-18
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,22 @@
1111

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

14+
# Http port
15+
EXPOSE 8080
16+
17+
ENV DITTO_HOME=/opt/ditto \
18+
DITTO_LOGS=/var/log/ditto
19+
20+
RUN set -x \
21+
&& apt-get update \
22+
&& apt-get install -y tini \
23+
&& mkdir -p $DITTO_HOME \
24+
&& mkdir -p $DITTO_LOGS \
25+
&& groupadd --system --gid 1000 ditto \
26+
&& useradd --no-log-init --system --home-dir $DITTO_HOME --shell /bin/sh --gid ditto --uid 1000 ditto \
27+
&& chown -R ditto:ditto $DITTO_HOME $DITTO_LOGS \
28+
&& rm -rf /var/lib/apt/lists/*
29+
1430
ARG TARGET_DIR
1531
ARG SERVICE_STARTER
1632
ARG SERVICE_VERSION
@@ -19,30 +35,13 @@ ARG MAIN_CLASS
1935

2036
ENV HTTP_PORT=8080 \
2137
HOSTING_ENVIRONMENT=Docker \
22-
DITTO_HOME=/opt/ditto \
23-
DITTO_LOGS=/var/log/ditto \
2438
JVM_CMD_ARGS_ENV=${JVM_CMD_ARGS} \
2539
MAIN_CLASS_ENV=${MAIN_CLASS} \
2640
CLASSPATH=/opt/ditto/*:/opt/ditto/extensions/*
2741

28-
# Http port
29-
EXPOSE 8080
30-
31-
RUN set -x \
32-
&& apt-get update \
33-
&& apt-get install -y tini \
34-
&& mkdir -p $DITTO_HOME \
35-
&& mkdir -p $DITTO_LOGS \
36-
&& groupadd --system --gid 1000 ditto \
37-
&& useradd --no-log-init --system --home-dir $DITTO_HOME --shell /bin/sh --gid ditto --uid 1000 ditto \
38-
&& cd $DITTO_HOME \
39-
&& chown -R ditto:ditto $DITTO_HOME \
40-
&& cd $DITTO_LOGS \
41-
&& chown -R ditto:ditto $DITTO_LOGS
42-
4342
USER ditto
4443
WORKDIR $DITTO_HOME
4544
ENTRYPOINT ["/usr/bin/tini", "--"]
4645
CMD ["sh", "-c", "exec java ${JVM_CMD_ARGS_ENV} ${MAIN_CLASS_ENV}"]
4746

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

0 commit comments

Comments
 (0)