From 52371f0d5df759c5eff3efb14e8596c476feb181 Mon Sep 17 00:00:00 2001 From: SwTt29 <2055018491@qq.com> Date: Tue, 30 Dec 2025 10:20:44 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=EF=BC=8C=E6=94=AF=E6=8C=81=E5=B7=B2=E6=9C=89?= =?UTF-8?q?.env=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy.sh | 38 ++++++----- server-example/.env配置说明.md | 104 +++++++++++++++++++++++++++++ 2 files changed, 127 insertions(+), 15 deletions(-) create mode 100644 server-example/.env配置说明.md diff --git a/deploy.sh b/deploy.sh index 1a1adec..a12f58b 100644 --- a/deploy.sh +++ b/deploy.sh @@ -19,21 +19,29 @@ if ! command -v docker-compose &> /dev/null; then fi # 创建项目目录 -echo "创建项目目录..." -mkdir -p /opt/project_app/logs /opt/project_app/uploads /opt/project_app/mysql-data - -# 克隆代码仓库 -echo "克隆代码仓库..." -git clone http://8.137.125.67:4000/Swt29/Project_app.git /opt/project_app -cd /opt/project_app - -# 创建.env文件(如果不存在) -echo "配置环境变量..." -if [ ! -f .env ]; then - cp .env.example .env - echo "请编辑.env文件配置数据库和其他参数" - # 这里可以添加自动配置脚本 -fi + echo "创建项目目录..." + mkdir -p /opt/project_app/logs /opt/project_app/uploads /opt/project_app/mysql-data + + # 克隆代码仓库或更新代码 + echo "处理代码仓库..." + if [ ! -d /opt/project_app/.git ]; then + # 如果目录不存在.git文件夹,则克隆仓库 + git clone http://8.137.125.67:4000/Swt29/Project_app.git /opt/project_app + else + # 如果目录已存在.git文件夹,则更新代码 + cd /opt/project_app + git pull origin BOSS + fi + cd /opt/project_app + + # 检查.env文件是否存在 + echo "检查环境变量配置..." + if [ ! -f .env ]; then + echo "警告: .env文件不存在,请手动配置环境变量" + echo "可以参考.env.example文件创建.env文件" + else + echo ".env文件已存在,跳过配置步骤" + fi # 构建Docker镜像 echo "构建Docker镜像..." diff --git a/server-example/.env配置说明.md b/server-example/.env配置说明.md new file mode 100644 index 0000000..bc88bee --- /dev/null +++ b/server-example/.env配置说明.md @@ -0,0 +1,104 @@ +# .env文件配置说明 + +## 1. 微信小程序配置 + +### WECHAT_APPID +- **含义**:微信小程序的唯一标识 +- **获取方式**:登录微信公众平台 -> 开发管理 -> 开发设置 -> 开发者ID(AppID) +- **当前值**:`wx3da6ea0adf91cf0d`(已配置,无需修改) + +### WECHAT_APPSECRET +- **含义**:微信小程序的应用密钥,用于接口调用 +- **获取方式**:登录微信公众平台 -> 开发管理 -> 开发设置 -> 开发者密码(AppSecret)(需要管理员扫码获取) +- **当前值**:`78fd81bce5a2968a8e7c607ae68c4c0b`(已配置,无需修改) + +### WECHAT_TOKEN +- **含义**:用于微信服务器验证的随机字符串,确保安全性 +- **设置方式**:可以自定义一个复杂的随机字符串(建议包含大小写字母、数字和特殊字符) +- **示例**:`abcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*` +- **当前值**:`your-random-token`(需要修改) + +## 2. MySQL数据库配置 + +### DB_HOST +- **含义**:MySQL数据库服务器的IP地址或域名 +- **设置方式**: + - 如果数据库和应用部署在同一台服务器,使用`localhost`或`127.0.0.1` + - 如果使用Docker Compose部署,使用服务名称(如`mysql`) + - 如果是远程数据库,使用数据库服务器的IP地址 +- **当前值**:`1.95.162.61`(已配置,无需修改) + +### DB_PORT +- **含义**:MySQL数据库服务的端口号 +- **默认值**:MySQL默认端口为`3306` +- **当前值**:`3306`(已配置,无需修改) + +### DB_DATABASE +- **含义**:要使用的数据库名称 +- **设置方式**:确保该数据库已在MySQL中创建 +- **当前值**:`wechat_app`(已配置,无需修改) + +### DB_USER +- **含义**:MySQL数据库的用户名 +- **设置方式**:使用具有该数据库访问权限的用户名 +- **当前值**:`root`(已配置,无需修改) + +### DB_PASSWORD +- **含义**:MySQL数据库用户的密码 +- **设置方式**: + - 如果用户有密码,填写实际密码 + - 如果没有密码,保留为空字符串(`DB_PASSWORD=""`) +- **当前值**:`schl@2025`(已配置,无需修改) + +## 3. 服务器配置 + +### PORT +- **含义**:Node.js服务器监听的端口号 +- **设置方式**:选择一个未被占用的端口(建议使用1024以上的端口) +- **当前值**:`3003`(已配置,无需修改) + +### LOG_LEVEL +- **含义**:日志记录的级别 +- **可选值**:`debug`, `info`, `warn`, `error` +- **建议**:开发环境使用`debug`,生产环境使用`info`或`warn` +- **当前值**:`debug`(已配置,建议生产环境修改为`info`) + +### NODE_ENV +- **含义**:Node.js运行环境 +- **可选值**:`development`(开发环境), `production`(生产环境) +- **当前值**:`production`(已配置,无需修改) + +### ENABLE_DETAILED_LOGGING +- **含义**:是否启用详细日志记录(用于问题排查) +- **可选值**:`true`, `false` +- **建议**:开发环境使用`true`,生产环境使用`false`以提高性能 +- **当前值**:`true`(已配置,建议生产环境修改为`false`) + +## 配置注意事项 + +1. **不要泄露敏感信息**:.env文件包含AppSecret、数据库密码等敏感信息,不要将其提交到代码仓库 + +2. **备份配置**:定期备份配置文件,以防丢失 + +3. **Docker部署时的特殊配置**: + - 如果使用Docker Compose部署,将`DB_HOST`改为`mysql`(与docker-compose.yml中的服务名称一致) + - 确保数据库端口在Docker Compose中正确映射 + +4. **环境一致性**:确保开发环境和生产环境的配置保持一致(除了敏感信息和环境特定配置) + +5. **配置验证**:配置完成后,启动服务前可以先测试数据库连接是否正常 + +## 修改示例 + +如果要修改配置,直接编辑.env文件即可: + +```bash +# 修改微信token +WECHAT_TOKEN=my-new-secure-token-2025 + +# 修改日志级别为info +LOG_LEVEL=info + +# 关闭详细日志 +ENABLE_DETAILED_LOGGING=false +``` \ No newline at end of file From e5080764646698ac37ea0b9128810e1e40572404 Mon Sep 17 00:00:00 2001 From: SwTt29 <2055018491@qq.com> Date: Tue, 30 Dec 2025 10:22:45 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=EF=BC=8C=E8=87=AA=E5=8A=A8=E5=AE=89=E8=A3=85?= =?UTF-8?q?Docker=20Compose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy.sh | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/deploy.sh b/deploy.sh index a12f58b..f68488c 100644 --- a/deploy.sh +++ b/deploy.sh @@ -12,11 +12,20 @@ if ! command -v docker &> /dev/null; then fi # 检查是否安装了Docker Compose -echo "检查Docker Compose是否安装..." -if ! command -v docker-compose &> /dev/null; then - echo "错误: Docker Compose未安装,请先安装Docker Compose" - exit 1 -fi + echo "检查Docker Compose是否安装..." + if ! command -v docker-compose &> /dev/null; then + echo "Docker Compose未安装,正在安装..." + # 安装Docker Compose + curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose + # 添加执行权限 + chmod +x /usr/local/bin/docker-compose + # 检查安装是否成功 + if ! command -v docker-compose &> /dev/null; then + echo "错误: Docker Compose安装失败,请手动安装" + exit 1 + fi + echo "Docker Compose安装成功" + fi # 创建项目目录 echo "创建项目目录..." From 478fee6d3e3709b1ea20580370177c2157749c32 Mon Sep 17 00:00:00 2001 From: SwTt29 <2055018491@qq.com> Date: Tue, 30 Dec 2025 10:29:43 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=EF=BC=9A=E6=9B=B4=E6=96=B0Docker=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E5=92=8C=E7=A7=BB=E9=99=A4=E8=BF=87=E6=97=B6=E7=9A=84?= =?UTF-8?q?version=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy.sh | 54 ++++++++++++++++++++++++++++++++-------------- docker-compose.yml | 2 -- 2 files changed, 38 insertions(+), 18 deletions(-) diff --git a/deploy.sh b/deploy.sh index f68488c..706e6d3 100644 --- a/deploy.sh +++ b/deploy.sh @@ -11,37 +11,59 @@ if ! command -v docker &> /dev/null; then exit 1 fi -# 检查是否安装了Docker Compose - echo "检查Docker Compose是否安装..." - if ! command -v docker-compose &> /dev/null; then +# 检查并更新Docker Compose和Buildx + echo "检查并更新Docker工具..." + + # 检查是否安装了Docker Compose + if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then echo "Docker Compose未安装,正在安装..." - # 安装Docker Compose - curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose - # 添加执行权限 + # 使用Daocloud镜像加速安装 + curl -L "https://get.daocloud.io/docker/compose/releases/download/latest/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose - # 检查安装是否成功 - if ! command -v docker-compose &> /dev/null; then - echo "错误: Docker Compose安装失败,请手动安装" - exit 1 - fi - echo "Docker Compose安装成功" fi + + # 更新Docker Buildx到最新版本 + echo "更新Docker Buildx..." + docker buildx install 2>/dev/null || true + docker buildx create --use 2>/dev/null || true + + echo "Docker工具检查完成" # 创建项目目录 echo "创建项目目录..." mkdir -p /opt/project_app/logs /opt/project_app/uploads /opt/project_app/mysql-data - # 克隆代码仓库或更新代码 + # 处理代码仓库或更新代码 echo "处理代码仓库..." if [ ! -d /opt/project_app/.git ]; then - # 如果目录不存在.git文件夹,则克隆仓库 - git clone http://8.137.125.67:4000/Swt29/Project_app.git /opt/project_app + # 如果目录不存在.git文件夹,检查目录是否为空 + if [ "$(ls -A /opt/project_app)" ]; then + # 目录不为空,创建临时目录克隆后复制文件 + echo "目标目录已存在且不为空,使用临时目录克隆代码..." + git clone http://8.137.125.67:4000/Swt29/Project_app.git /tmp/project_app_temp + # 复制.git文件夹和docker相关文件 + cp -r /tmp/project_app_temp/.git /opt/project_app/ + cp -r /tmp/project_app_temp/docker-compose.yml /opt/project_app/ 2>/dev/null || true + cp -r /tmp/project_app_temp/Dockerfile /opt/project_app/ 2>/dev/null || true + # 清理临时目录 + rm -rf /tmp/project_app_temp + else + # 目录为空,直接克隆仓库 + git clone http://8.137.125.67:4000/Swt29/Project_app.git /opt/project_app + fi + cd /opt/project_app else # 如果目录已存在.git文件夹,则更新代码 cd /opt/project_app git pull origin BOSS fi - cd /opt/project_app + + # 检查docker-compose.yml文件是否存在 + if [ ! -f docker-compose.yml ]; then + echo "警告: docker-compose.yml文件不存在,正在从仓库重新拉取..." + git fetch origin BOSS + git checkout origin/BOSS -- docker-compose.yml Dockerfile + fi # 检查.env文件是否存在 echo "检查环境变量配置..." diff --git a/docker-compose.yml b/docker-compose.yml index c909a53..de673e1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3.8' - services: app: build: .