소스 검색

kms:add UID GID and fix s6

John 11 달 전
부모
커밋
f483795ed6
5개의 변경된 파일36개의 추가작업 그리고 8개의 파일을 삭제
  1. 11 3
      kms/Dockerfile
  2. 15 3
      kms/README.md
  3. 5 0
      kms/root/etc/cont-init.d/kms.sh
  4. 4 1
      kms/root/etc/services.d/darkhttpd/run
  5. 1 1
      kms/root/etc/services.d/vlmcsd/run

+ 11 - 3
kms/Dockerfile

@@ -12,16 +12,20 @@ RUN apk add --no-cache git build-base \
 # docker vlmcsd
 FROM alpine:3.20
 
-ARG S6_VER=3.2.0.0
+ARG S6_VER=3.2.0.2
 ARG VLMCSD_VER=1113
 
+ENV UID=1000
+ENV GID=1000
 ENV KMS_README_WEB=true
+ENV KMS_README_WEB_PORT=8080
+ENV VLMCSD_SERVER_PORT=1688
 ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0
 
 COPY --chmod=755 root /
 COPY --from=compilingvlmcsd --chmod=755 /vlmcsd-svn${VLMCSD_VER}/bin/vlmcsd /usr/bin/vlmcsd
 
-RUN apk add --no-cache darkhttpd ca-certificates bash \
+RUN apk add --no-cache darkhttpd ca-certificates bash shadow \
 && if [ "$(uname -m)" = "x86_64" ];then s6_arch=x86_64;elif [ "$(uname -m)" = "aarch64" ];then s6_arch=aarch64;elif [ "$(uname -m)" = "armv7l" ];then s6_arch=arm; fi \
 && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-noarch.tar.xz \
 && tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz \
@@ -31,7 +35,11 @@ RUN apk add --no-cache darkhttpd ca-certificates bash \
 && tar -C / -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz \
 && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-symlinks-arch.tar.xz \
 && tar -C / -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz \
+#create kms user
+&& useradd -u 1000 -U -s /bin/false kms \
+&& usermod -G users kms \
+#
 && rm -rf /var/cache/apk/* /tmp/*
 
-EXPOSE 1688 80
+EXPOSE 1688 8080
 ENTRYPOINT [ "/init" ]

+ 15 - 3
kms/README.md

@@ -14,6 +14,10 @@
 |:-|:-|:-|
 |vlmcsd|1113|amd64;arm64v8;arm32v7|
 
+#### 版本升级注意:
+
+* web访问默认端口更改为8080。
+
 ### docker命令行设置:
 
 * 变量名变更
@@ -34,7 +38,7 @@
         docker create \
            --name=kms \
            -p 1688:1688 \
-           -p 80:80 \
+           -p 8080:8080 \
            --restart unless-stopped \
           johngong/kms:latest
 
@@ -60,8 +64,12 @@
 |:-|:-|
 | `--name=kms` |容器名|
 | `-p 1688:1688 ` |kms服务器端口|
-| `-p 80:80` |KMS使用说明web访问端口|
+| `-p 8080:8080` |KMS使用说明web访问端口|
+| `-e UID=1000` |uid设置,默认为1000|
+| `-e GID=1000` |gid设置,默认为1000|
 | `-e KMS_README_WEB=true` |(true\|false)KMS使用说明,默认开启|
+| `-e KMS_README_WEB_PORT=8080` |KMS使用说明web访问端口|
+| `-e VLMCSD_SERVER_PORT=1688` |kms服务器端口,默认1688|
 
 ### 群晖docker设置:
 
@@ -70,10 +78,14 @@
 |参数|说明|
 |:-|:-|
 | `本地端口1:1688` |kms服务器端口|
-| `本地端口2:80` |KMS使用说明web访问端口|
+| `本地端口2:8080` |KMS使用说明web访问端口|
 
 2. 环境变量
 
 |参数|说明|
 |:-|:-|
+| `UID=1000` |uid设置,默认为1000|
+| `GID=1000` |gid设置,默认为1000|
 | `KMS_README_WEB=true` |(true\|false)KMS使用说明,默认开启|
+| `KMS_README_WEB_PORT=8080` |KMS使用说明web访问端口|
+| `VLMCSD_SERVER_PORT=1688` |kms服务器端口,默认1688|

+ 5 - 0
kms/root/etc/cont-init.d/kms.sh

@@ -0,0 +1,5 @@
+#! /usr/bin/with-contenv bash
+
+#修改用户UID GID
+groupmod -o -g "$GID" kms
+usermod -o -u "$UID" kms

+ 4 - 1
kms/root/etc/services.d/darkhttpd/run

@@ -2,5 +2,8 @@
 
 #启动darkhttpd
 if [ "$KMS_README_WEB" == "true" ]; then
-  exec darkhttpd /home/www
+  exec s6-setuidgid kms darkhttpd /home/www --port $KMS_README_WEB_PORT
+else
+  s6-svc -Od .
+  exit 0
 fi

+ 1 - 1
kms/root/etc/services.d/vlmcsd/run

@@ -1,4 +1,4 @@
 #! /usr/bin/with-contenv bash
 
 #启动vlmcsd
-exec vlmcsd -D
+exec s6-setuidgid kms vlmcsd -D -P $VLMCSD_SERVER_PORT