From a513b32a0393825c0a62d79856e06188e5b63047 Mon Sep 17 00:00:00 2001 From: DDSRem <1448139087@qq.com> Date: Tue, 27 Dec 2022 14:59:10 +0800 Subject: [PATCH] Add PUID, PGID, Umask settings to Docker image --- Dockerfile | 21 ++++++++++++++++++--- entrypoint.sh | 12 ++++++++++++ readme.md | 8 +++++++- 3 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 entrypoint.sh diff --git a/Dockerfile b/Dockerfile index d4678b6..9dafef6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,21 @@ FROM node:lts-alpine + LABEL MAINTAINER likun7981 -RUN npm i -g hlink + +ENV DOCKER=true \ + PS1="\u@\h:\w \$ " \ + PUID=1000 \ + PGID=1000 \ + UMASK=022 + +RUN apk add --no-cache \ + bash \ + su-exec \ + && \ + npm i -g hlink + +COPY --chmod=755 entrypoint.sh /entrypoint.sh + +ENTRYPOINT [ "/entrypoint.sh" ] + EXPOSE 9090 -ENV DOCKER true -ENTRYPOINT hlink start diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..477ff15 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +if [[ -n "${HLINK_HOME}" ]]; then + if [[ "$(stat -c '%u' ${HLINK_HOME})" != "${PUID}" ]] || [[ "$(stat -c '%g' ${HLINK_HOME})" != "${PGID}" ]]; then + chown ${PUID}:${PGID} \ + ${HLINK_HOME} + fi +fi + +umask ${UMASK} + +su-exec ${PUID}:${PGID} hlink start \ No newline at end of file diff --git a/readme.md b/readme.md index e1c10c7..7bc1ac2 100644 --- a/readme.md +++ b/readme.md @@ -28,6 +28,9 @@ ## 使用docker run ```bash docker run -d --name hlink \ +-e PUID=$YOUR_USER_ID \ +-e PGID=$YOUR_GROUP_ID \ +-e UMASK=$YOUR_UMASK \ -e HLINK_HOME=$YOUR_HLINK_HOME_DIR \ -p 9090:9090 \ -v $YOUR_NAS_VOLUME_PATH:$DOCKER_VOLUME_PATH \ @@ -47,10 +50,13 @@ services: volumes: # 这个表示存储空间映射 - $YOUR_NAS_VOLUME_PATH:$DOCKER_VOLUME_PATH environment: + - PUID=$YOUR_USER_ID + - PGID=$YOUR_GROUP_ID + - UMASK=$YOUR_UMASK - HLINK_HOME=$YOUR_HLINK_HOME_DIR # 这个是环境变量 ``` -`$YOUR_HLINK_HOME_DIR`、`$YOUR_NAS_VOLUME_PATH`、`$DOCKER_VOLUME_PATH`为变量,根据自己的情况自行设置 +`$YOUR_USER_ID`、`$YOUR_GROUP_ID`、`$YOUR_UMASK`、`$YOUR_HLINK_HOME_DIR`、`$YOUR_NAS_VOLUME_PATH`、`$DOCKER_VOLUME_PATH`为变量,根据自己的情况自行设置 ## 使用npm安装