瀏覽代碼

deploy(deploy.sh): 更新配置文件路径并优化容器启动方式

- 将 API 和 Task 容器的配置文件路径从绝对路径改为相对路径
- 在 Dockerfile 中添加对 APP_CONF 环境变量的支持
- 优化容器启动命令,通过环境变量指定配置文件
fusu 2 月之前
父節點
當前提交
aa1758641d
共有 2 個文件被更改,包括 9 次插入5 次删除
  1. 4 1
      deploy/build/Dockerfile
  2. 5 4
      deploy/deploy.sh

+ 4 - 1
deploy/build/Dockerfile

@@ -42,7 +42,10 @@ COPY --from=builder /data/app/bin /data/app
 EXPOSE 8000
 # 在构建阶段设置ENTRYPOINT,支持通过APP_CONF环境变量指定配置文件
 RUN echo '#!/bin/sh' > /data/app/entrypoint.sh && \
-    echo './'${APP_NAME}' "$@"' >> /data/app/entrypoint.sh && \
+    echo 'if [ ! -z "$APP_CONF" ]; then' >> /data/app/entrypoint.sh && \
+    echo '  echo "Using config from APP_CONF: $APP_CONF"' >> /data/app/entrypoint.sh && \
+    echo 'fi' >> /data/app/entrypoint.sh && \
+    echo 'exec ./'${APP_NAME}' "$@"' >> /data/app/entrypoint.sh && \
     chmod +x /data/app/entrypoint.sh
 ENTRYPOINT [ "./entrypoint.sh" ]
 

+ 5 - 4
deploy/deploy.sh

@@ -95,12 +95,13 @@ if [ "$BUILD_API" = true ]; then
     docker run -d --restart=always --name nunu-api \
       -e TZ=Asia/Shanghai \
       -e SERVICE_TYPE=api \
+      -e APP_CONF=config/prod.yml \
       -p 8000:8000 \
       -v /www/wwwroot/nunu/storage:/data/app/storage \
       -v /www/wwwroot/nunu/config:/data/app/config \
       -v go-mod-cache:/go/pkg/mod \
       nunu-api:v1 \
-      ./app -conf /data/app/config/prod.yml
+      ./app -conf config/prod.yml
   else
     echo "API容器已在运行中,如需重新创建请使用 --force 参数"
   fi
@@ -118,16 +119,16 @@ if [ "$BUILD_TASK" = true ]; then
     echo "停止并移除旧的Task容器..."
     docker stop nunu-task 2>/dev/null || true
     docker rm nunu-task 2>/dev/null || true
-    
+
     echo "启动新的Task容器..."
     docker run -d --restart=always --name nunu-task \
       -e TZ=Asia/Shanghai \
-      -e SERVICE_TYPE=task \
+      -e APP_CONF=config/prod.yml \
       -v /www/wwwroot/nunu/storage:/data/app/storage \
       -v /www/wwwroot/nunu/config:/data/app/config \
       -v go-mod-cache:/go/pkg/mod \
       nunu-task:v1 \
-      ./task -conf /data/app/config/prod.yml
+      ./task -conf config/prod.yml
   else
     echo "Task容器已在运行中,如需重新创建请使用 --force 参数"
   fi