From 2fa15fe4c3b9c5946dff20f5ae165ceeef97e7f5 Mon Sep 17 00:00:00 2001 From: qaq <1937228092@qq.com> Date: Fri, 13 Jun 2025 09:25:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E7=BD=B2=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- deployment.zip | Bin 47180357 -> 47180440 bytes deployment/Dockerfile.vue | 5 +---- deployment/deploy.sh | 31 +++++++++++++++++++++++++++---- deployment/docker-compose.yml | 4 ++-- deployment/docker-entrypoint.sh | 9 +-------- 6 files changed, 32 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 2178f1e..c7d3610 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ chmod +x deploy.sh #### 默认管理员账号 -- **用户名**: admin_user +- **账号**: admin_user - **密码**: admin_user > ⚠️ 首次登录后请立即修改默认密码! diff --git a/deployment.zip b/deployment.zip index 50ad33b2087bc894c8c239594e0decd5724cbb9f..ce52694fc5b342d3234f5439010215c64d2c2181 100644 GIT binary patch delta 6870 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 diff --git a/deployment/Dockerfile.vue b/deployment/Dockerfile.vue index 5030b60..de65136 100644 --- a/deployment/Dockerfile.vue +++ b/deployment/Dockerfile.vue @@ -7,12 +7,9 @@ RUN apk add --no-cache gettext # 复制nginx配置模板 COPY nginx.conf.template /etc/nginx/nginx.conf.template -# 复制预打包的dist文件夹 +# 复制预打包的dist文件夹(包含config.js) COPY dist /usr/share/nginx/html -# 复制配置模板文件 -COPY config.template.js /usr/share/nginx/html/config.template.js - # 创建运行时配置脚本 COPY docker-entrypoint.sh /docker-entrypoint.sh RUN chmod +x /docker-entrypoint.sh diff --git a/deployment/deploy.sh b/deployment/deploy.sh index eacda0d..8e55dfd 100755 --- a/deployment/deploy.sh +++ b/deployment/deploy.sh @@ -28,6 +28,7 @@ show_help() { echo " -h, --help 显示此帮助信息" echo "" echo "环境变量配置:" + echo " SERVER_HOST 服务器地址 (默认: localhost:6365)" echo " VUE_APP_API_URL 前端API地址 (默认: http://localhost:6365/api/v1)" echo " VUE_APP_WS_URL WebSocket地址 (默认: ws://localhost:6365)" echo "" @@ -35,7 +36,10 @@ show_help() { echo " # 启动服务" echo " $0 start" echo "" - echo " # 自定义服务器地址启动" + echo " # 使用服务器IP启动" + echo " SERVER_HOST=192.168.1.100:6365 $0 start" + echo "" + echo " # 自定义完整地址启动" echo " VUE_APP_API_URL=http://192.168.1.100:6365/api/v1 VUE_APP_WS_URL=ws://192.168.1.100:6365 $0 start" } @@ -91,11 +95,20 @@ get_db_config() { start_services() { echo -e "${GREEN}启动Gost转发面板服务...${NC}" - # 设置默认环境变量 - export VUE_APP_API_URL=${VUE_APP_API_URL:-"http://localhost:6365/api/v1"} - export VUE_APP_WS_URL=${VUE_APP_WS_URL:-"ws://localhost:6365"} + # 如果设置了 SERVER_HOST,自动生成 API 和 WS 地址 + if [ -n "$SERVER_HOST" ]; then + export VUE_APP_API_URL="http://${SERVER_HOST}/api/v1" + export VUE_APP_WS_URL="ws://${SERVER_HOST}" + else + # 设置默认环境变量 + export VUE_APP_API_URL=${VUE_APP_API_URL:-"http://localhost:6365/api/v1"} + export VUE_APP_WS_URL=${VUE_APP_WS_URL:-"ws://localhost:6365"} + fi echo -e "${YELLOW}环境变量配置:${NC}" + if [ -n "$SERVER_HOST" ]; then + echo "SERVER_HOST: $SERVER_HOST" + fi echo "VUE_APP_API_URL: $VUE_APP_API_URL" echo "VUE_APP_WS_URL: $VUE_APP_WS_URL" echo "" @@ -103,6 +116,16 @@ start_services() { # 切换到脚本目录 cd "$SCRIPT_DIR" + # 生成前端配置文件 + echo -e "${YELLOW}生成前端配置文件...${NC}" + cat > dist/config.js << EOF +window.APP_CONFIG = { + VUE_APP_API_URL: "$VUE_APP_API_URL", + VUE_APP_WS_URL: "$VUE_APP_WS_URL" +} +EOF + echo -e "${GREEN}配置文件已生成: dist/config.js${NC}" + $DOCKER_COMPOSE_CMD up -d if [ $? -eq 0 ]; then diff --git a/deployment/docker-compose.yml b/deployment/docker-compose.yml index 9509f9e..08435ff 100644 --- a/deployment/docker-compose.yml +++ b/deployment/docker-compose.yml @@ -82,8 +82,8 @@ services: environment: BACKEND_HOST: backend # 后端地址 BACKEND_PORT: 6365 # 后端端口 - VUE_APP_API_URL: http://localhost:6365/api/v1 # 前端API地址 - VUE_APP_WS_URL: ws://localhost:6365 # 前端WebSocket地址 + VUE_APP_API_URL: ${VUE_APP_API_URL:-http://localhost:6365/api/v1} # 前端API地址 + VUE_APP_WS_URL: ${VUE_APP_WS_URL:-ws://localhost:6365} # 前端WebSocket地址 depends_on: backend: condition: service_healthy diff --git a/deployment/docker-entrypoint.sh b/deployment/docker-entrypoint.sh index 6e9114a..d0f70f5 100644 --- a/deployment/docker-entrypoint.sh +++ b/deployment/docker-entrypoint.sh @@ -3,23 +3,16 @@ # 设置默认环境变量 export BACKEND_HOST=${BACKEND_HOST:-backend} export BACKEND_PORT=${BACKEND_PORT:-6365} -export VUE_APP_API_URL=${VUE_APP_API_URL:-"http://localhost:6365/api/v1"} -export VUE_APP_WS_URL=${VUE_APP_WS_URL:-"ws://localhost:6365"} echo "=== 容器启动配置 ===" echo "BACKEND_HOST: $BACKEND_HOST" echo "BACKEND_PORT: $BACKEND_PORT" -echo "VUE_APP_API_URL: $VUE_APP_API_URL" -echo "VUE_APP_WS_URL: $VUE_APP_WS_URL" echo "====================" # 使用envsubst替换nginx配置中的环境变量 envsubst '${BACKEND_HOST} ${BACKEND_PORT}' < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf -# 使用envsubst替换前端配置文件中的环境变量 -envsubst '${VUE_APP_API_URL} ${VUE_APP_WS_URL}' < /usr/share/nginx/html/config.template.js > /usr/share/nginx/html/config.js - -echo "配置文件已生成" +echo "Nginx配置文件已生成" # 启动nginx exec "$@" \ No newline at end of file