add uid/gid selection to run application as in Dockerfile

This commit is contained in:
cuqmbr 2025-08-12 18:42:35 +03:00
parent 20f39cf22e
commit 260bdd7277
Signed by: cuqmbr
GPG Key ID: 1F62396D020F375C

View File

@ -94,6 +94,9 @@ EXPOSE 25565/tcp
EXPOSE 8100/tcp EXPOSE 8100/tcp
ENV GID=988
ENV UID=999
ENV MEMORY=4G ENV MEMORY=4G
ENV PROXY_SECRET=00000000-0000-0000-0000-000000000000 ENV PROXY_SECRET=00000000-0000-0000-0000-000000000000
@ -141,6 +144,13 @@ ENV DISCORDSRV_DB_PASSWORD=0000
WORKDIR ${WORKDIR_PATH}/config WORKDIR ${WORKDIR_PATH}/config
CMD \ CMD \
# Create and switch to user with desired UID and GID.
# All processes that create/change files in ${DATA_PATH}
# must be run under this user.
groupadd -g ${GID} worker && \
useradd -M -g ${GID} -u ${UID} worker && \
chmod -R o-rwx ${WORKDIR_PATH} && \
# Add proxy secret # Add proxy secret
sed -i "s/_PROXY_SECRET_/${PROXY_SECRET}/g" config/paper-global.yml && \ sed -i "s/_PROXY_SECRET_/${PROXY_SECRET}/g" config/paper-global.yml && \
@ -192,5 +202,8 @@ CMD \
sed -i "s/_DISCORDSRV_DB_USERNAME_/${DISCORDSRV_DB_USERNAME}/g" plugins/DiscordSRV/config.yml && \ sed -i "s/_DISCORDSRV_DB_USERNAME_/${DISCORDSRV_DB_USERNAME}/g" plugins/DiscordSRV/config.yml && \
sed -i "s/_DISCORDSRV_DB_PASSWORD_/${DISCORDSRV_DB_PASSWORD}/g" plugins/DiscordSRV/config.yml && \ sed -i "s/_DISCORDSRV_DB_PASSWORD_/${DISCORDSRV_DB_PASSWORD}/g" plugins/DiscordSRV/config.yml && \
# Change UID and GID of used files to desired values.
chown -R worker:worker ${WORKDIR_PATH} && \
# Launch # Launch
java -Xms${MEMORY} -Xmx${MEMORY} -jar *.jar -nogui su worker -c "java -Xms${MEMORY} -Xmx${MEMORY} -jar *.jar -nogui"