Skip to content

Commit a19eade

Browse files
authored
Correct formatting of /start shim for alpine variants (#3690)
1 parent b7859d7 commit a19eade

File tree

2 files changed

+92
-89
lines changed

2 files changed

+92
-89
lines changed

.gitattributes

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
# Auto detect text files and perform LF normalization
2-
* text=lf
1+
# Auto detect text files and perform LF normalization
2+
* text eol=lf

Dockerfile

Lines changed: 90 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,90 @@
1-
ARG BASE_IMAGE=eclipse-temurin:21-jre
2-
FROM ${BASE_IMAGE}
3-
4-
# hook into docker BuildKit --platform support
5-
# see https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
6-
ARG TARGETOS
7-
ARG TARGETARCH
8-
ARG TARGETVARIANT
9-
10-
# The following three arg/env vars get used by the platform specific "install-packages" script
11-
ARG EXTRA_DEB_PACKAGES=""
12-
ARG EXTRA_DNF_PACKAGES=""
13-
ARG EXTRA_ALPINE_PACKAGES=""
14-
ARG FORCE_INSTALL_PACKAGES=1
15-
RUN --mount=target=/build,source=build \
16-
TARGET=${TARGETARCH}${TARGETVARIANT} \
17-
/build/run.sh install-packages
18-
19-
RUN --mount=target=/build,source=build \
20-
/build/run.sh setup-user
21-
22-
EXPOSE 25565
23-
24-
ARG APPS_REV=1
25-
ARG GITHUB_BASEURL=https://github.com
26-
27-
ARG EASY_ADD_VERSION=0.8.11
28-
ADD ${GITHUB_BASEURL}/itzg/easy-add/releases/download/${EASY_ADD_VERSION}/easy-add_${TARGETOS}_${TARGETARCH}${TARGETVARIANT} /usr/bin/easy-add
29-
RUN chmod +x /usr/bin/easy-add
30-
31-
ARG RESTIFY_VERSION=1.7.10
32-
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
33-
--var version=${RESTIFY_VERSION} --var app=restify --file {{.app}} \
34-
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
35-
36-
ARG RCON_CLI_VERSION=1.7.1
37-
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
38-
--var version=${RCON_CLI_VERSION} --var app=rcon-cli --file {{.app}} \
39-
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
40-
41-
ARG MC_MONITOR_VERSION=0.15.6
42-
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
43-
--var version=${MC_MONITOR_VERSION} --var app=mc-monitor --file {{.app}} \
44-
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
45-
46-
ARG MC_SERVER_RUNNER_VERSION=1.13.4
47-
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
48-
--var version=${MC_SERVER_RUNNER_VERSION} --var app=mc-server-runner --file {{.app}} \
49-
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
50-
51-
ARG MC_HELPER_VERSION=1.49.0
52-
ARG MC_HELPER_BASE_URL=${GITHUB_BASEURL}/itzg/mc-image-helper/releases/download/${MC_HELPER_VERSION}
53-
# used for cache busting local copy of mc-image-helper
54-
ARG MC_HELPER_REV=1
55-
RUN curl -fsSL ${MC_HELPER_BASE_URL}/mc-image-helper-${MC_HELPER_VERSION}.tgz \
56-
| tar -C /usr/share -zxf - \
57-
&& ln -s /usr/share/mc-image-helper-${MC_HELPER_VERSION}/ /usr/share/mc-image-helper \
58-
&& ln -s /usr/share/mc-image-helper/bin/mc-image-helper /usr/bin
59-
60-
VOLUME ["/data"]
61-
WORKDIR /data
62-
63-
STOPSIGNAL SIGTERM
64-
65-
# End user MUST set EULA and change RCON_PASSWORD
66-
ENV TYPE=VANILLA VERSION=LATEST EULA="" UID=1000 GID=1000 LC_ALL=en_US.UTF-8
67-
68-
COPY --chmod=755 scripts/start* /image/scripts/
69-
70-
# Backward compatible shim for those with legacy entrypoint
71-
RUN echo "#!/bin/sh\nexec /image/scripts/start\n" > /start && chmod +x /start
72-
73-
COPY --chmod=755 scripts/auto/* /image/scripts/auto/
74-
COPY --chmod=755 files/shims/ /usr/local/bin/
75-
COPY --chmod=755 files/* /image/
76-
77-
RUN curl -fsSL -o /image/Log4jPatcher.jar https://github.com/CreeperHost/Log4jPatcher/releases/download/v1.0.1/Log4jPatcher-1.0.1.jar
78-
79-
RUN dos2unix /image/scripts/start* /image/scripts/auto/*
80-
81-
ENTRYPOINT [ "/image/scripts/start" ]
82-
HEALTHCHECK --start-period=2m --retries=2 --interval=30s CMD mc-health
83-
84-
ARG BUILDTIME=local
85-
ARG VERSION=local
86-
ARG REVISION=local
87-
RUN echo "buildtime=${BUILDTIME}\nversion=${VERSION}\nrevision=${REVISION}" > /etc/image.properties
1+
ARG BASE_IMAGE=eclipse-temurin:21-jre
2+
FROM ${BASE_IMAGE}
3+
4+
# hook into docker BuildKit --platform support
5+
# see https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
6+
ARG TARGETOS
7+
ARG TARGETARCH
8+
ARG TARGETVARIANT
9+
10+
# The following three arg/env vars get used by the platform specific "install-packages" script
11+
ARG EXTRA_DEB_PACKAGES=""
12+
ARG EXTRA_DNF_PACKAGES=""
13+
ARG EXTRA_ALPINE_PACKAGES=""
14+
ARG FORCE_INSTALL_PACKAGES=1
15+
RUN --mount=target=/build,source=build \
16+
TARGET=${TARGETARCH}${TARGETVARIANT} \
17+
/build/run.sh install-packages
18+
19+
RUN --mount=target=/build,source=build \
20+
/build/run.sh setup-user
21+
22+
EXPOSE 25565
23+
24+
ARG APPS_REV=1
25+
ARG GITHUB_BASEURL=https://github.com
26+
27+
ARG EASY_ADD_VERSION=0.8.11
28+
ADD ${GITHUB_BASEURL}/itzg/easy-add/releases/download/${EASY_ADD_VERSION}/easy-add_${TARGETOS}_${TARGETARCH}${TARGETVARIANT} /usr/bin/easy-add
29+
RUN chmod +x /usr/bin/easy-add
30+
31+
ARG RESTIFY_VERSION=1.7.10
32+
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
33+
--var version=${RESTIFY_VERSION} --var app=restify --file {{.app}} \
34+
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
35+
36+
ARG RCON_CLI_VERSION=1.7.1
37+
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
38+
--var version=${RCON_CLI_VERSION} --var app=rcon-cli --file {{.app}} \
39+
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
40+
41+
ARG MC_MONITOR_VERSION=0.15.6
42+
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
43+
--var version=${MC_MONITOR_VERSION} --var app=mc-monitor --file {{.app}} \
44+
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
45+
46+
ARG MC_SERVER_RUNNER_VERSION=1.13.4
47+
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
48+
--var version=${MC_SERVER_RUNNER_VERSION} --var app=mc-server-runner --file {{.app}} \
49+
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
50+
51+
ARG MC_HELPER_VERSION=1.49.0
52+
ARG MC_HELPER_BASE_URL=${GITHUB_BASEURL}/itzg/mc-image-helper/releases/download/${MC_HELPER_VERSION}
53+
# used for cache busting local copy of mc-image-helper
54+
ARG MC_HELPER_REV=1
55+
RUN curl -fsSL ${MC_HELPER_BASE_URL}/mc-image-helper-${MC_HELPER_VERSION}.tgz \
56+
| tar -C /usr/share -zxf - \
57+
&& ln -s /usr/share/mc-image-helper-${MC_HELPER_VERSION}/ /usr/share/mc-image-helper \
58+
&& ln -s /usr/share/mc-image-helper/bin/mc-image-helper /usr/bin
59+
60+
VOLUME ["/data"]
61+
WORKDIR /data
62+
63+
STOPSIGNAL SIGTERM
64+
65+
# End user MUST set EULA and change RCON_PASSWORD
66+
ENV TYPE=VANILLA VERSION=LATEST EULA="" UID=1000 GID=1000 LC_ALL=en_US.UTF-8
67+
68+
COPY --chmod=755 scripts/start* /image/scripts/
69+
70+
# Backward compatible shim for those with legacy entrypoint
71+
COPY --chmod=755 <<EOF /start
72+
#!/bin/bash
73+
exec /image/scripts/start
74+
EOF
75+
76+
COPY --chmod=755 scripts/auto/* /image/scripts/auto/
77+
COPY --chmod=755 files/shims/ /usr/local/bin/
78+
COPY --chmod=755 files/* /image/
79+
80+
RUN curl -fsSL -o /image/Log4jPatcher.jar https://github.com/CreeperHost/Log4jPatcher/releases/download/v1.0.1/Log4jPatcher-1.0.1.jar
81+
82+
RUN dos2unix /image/scripts/start* /image/scripts/auto/*
83+
84+
ENTRYPOINT [ "/image/scripts/start" ]
85+
HEALTHCHECK --start-period=2m --retries=2 --interval=30s CMD mc-health
86+
87+
ARG BUILDTIME=local
88+
ARG VERSION=local
89+
ARG REVISION=local
90+
RUN echo "buildtime=${BUILDTIME}\nversion=${VERSION}\nrevision=${REVISION}" > /etc/image.properties

0 commit comments

Comments
 (0)