diff --git a/Dockerfile b/Dockerfile index 2fa11305dc40900c0de993f97618d2d267d8d237..70bcc7370776c00c5a61fb3719c46bdce8ced564 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,27 +1,30 @@ FROM alpine:3.16 ENV LANG=zh_CN.UTF-8 \ TZ=Asia/Shanghai \ + PUID=1000 \ + PGID=1000 \ PS1="\u@\h:\w \$ " -RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \ - && apk add --update --no-cache \ +RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.bfsu.edu.cn/g' /etc/apk/repositories \ + && apk add --no-cache \ + acme.sh \ + curl \ + fontconfig \ + net-tools \ nginx \ nginx-mod-stream \ nginx-mod-http-headers-more \ openjdk8-jre \ - net-tools \ - curl \ - wget \ + shadow \ + su-exec \ + tini \ ttf-dejavu \ - fontconfig \ tzdata \ - tini \ - acme.sh \ + wget \ && fc-cache -f -v \ && ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime \ && echo "${TZ}" > /etc/timezone \ && rm -rf /var/cache/apk/* /tmp/* COPY target/nginxWebUI-*.jar /home/nginxWebUI.jar -COPY entrypoint.sh /usr/local/bin/entrypoint.sh -RUN ["chmod", "+x", "/usr/local/bin/entrypoint.sh"] +COPY --chmod=755 entrypoint.sh /usr/local/bin/entrypoint.sh VOLUME ["/home/nginxWebUI"] -ENTRYPOINT ["tini", "entrypoint.sh"] \ No newline at end of file +ENTRYPOINT ["tini", "entrypoint.sh"] diff --git a/README.md b/README.md index bc4151d052de03b529cd817ba3bd278cf4e7e64d..ae8aab89279e9b23b50b1368832964b7a4c1ba55 100644 --- a/README.md +++ b/README.md @@ -143,6 +143,8 @@ docker pull cym1102/nginxwebui:latest docker run -itd \ -v /home/nginxWebUI:/home/nginxWebUI \ -e BOOT_OPTIONS="--server.port=8080" \ + -e PUID=1000 `# 以什么用户运行nginxwebui,该用户的uid` \ + -e PGID=1000 `# 以什么用户运行nginxwebui,该用户的gid` \ --privileged=true \ --net=host \ cym1102/nginxwebui:latest @@ -173,6 +175,8 @@ services: target: "/home/nginxWebUI" environment: BOOT_OPTIONS: "--server.port=8080" + PUID: "1000" # 以什么用户运行nginxwebui,该用户的uid + PGID: "1000" # 以什么用户运行nginxwebui,该用户的gid privileged: true network_mode: "host" diff --git a/README_EN.md b/README_EN.md index 2625e84e34dd79726d93b07d8ade5e25cd29b931..78cc558cf090c974d2b5485752999a7084983a5a 100644 --- a/README_EN.md +++ b/README_EN.md @@ -132,7 +132,14 @@ docker pull cym1102/nginxwebui:latest 3.start container ``` -docker run -itd -v /home/nginxWebUI:/home/nginxWebUI -e BOOT_OPTIONS="--server.port=8080" --privileged=true --net=host cym1102/nginxwebui:latest +docker run -itd \ + -v /home/nginxWebUI:/home/nginxWebUI \ + -e BOOT_OPTIONS="--server.port=8080" \ + -e PUID=1000 `# user's uid` \ + -e PGID=1000 `# user's gid` \ + --privileged=true \ + --net=host \ + cym1102/nginxwebui:latest ``` notice: @@ -160,6 +167,8 @@ services: target: "/home/nginxWebUI" environment: BOOT_OPTIONS: "--server.port=8080" + PUID: "1000" # user's uid + PGID: "1000" # user's gid privileged: true network_mode: "host" diff --git a/entrypoint.sh b/entrypoint.sh index 7a7367c63def61b89ce950ce642a271fee4051b0..ef3de3857076c6a787c28a3a41d5bf5cb00717c9 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,4 +1,8 @@ #!/bin/sh +groupmod -o -g "${PGID}" nginx +usermod -o -u "${PUID}" nginx +chown -R ${PUID}:${PGID} /home/nginxWebUI.jar /home/nginxWebUI /var/lib/nginx /var/log/nginx /run/nginx + cd /home -exec java -jar -Dfile.encoding=UTF-8 -Xmx64m nginxWebUI.jar ${BOOT_OPTIONS} > /dev/null +exec su-exec ${PUID}:${PGID} java -jar -Dfile.encoding=UTF-8 -Xmx64m nginxWebUI.jar ${BOOT_OPTIONS} >/dev/null