使用 Docker Compose 部署应用
详细介绍了如何使用 Docker Compose 在服务器上部署应用程序,包括环境准备、代码部署、构建启动、Nginx反向代理配置及管理命令。
部署说明文档:使用 Docker Compose 部署应用
本文档详细介绍了如何使用 Docker Compose 在服务器上部署您的应用程序。
1. 准备服务器环境
在开始部署之前,请确保您的服务器满足以下条件:
- 已安装 Docker。 + 已安装 Docker Compose。
2. 部署代码到服务器
您可以选择以下两种方法之一将应用程序代码部署到服务器。
方法一:使用 Git
如果您的代码托管在 Git 仓库中,这是推荐的方法。
配置环境变量
创建 .env 文件来覆盖应用程序的默认配置。
请将占位符替换为您的实际环境变量值。确保 .env 文件位于包含 docker-compose.yml 文件的目录下。
4. 构建和启动应用
使用 Docker Compose 构建并启动您的应用程序容器。
- 首次运行或代码有更新时(需要重新构建镜像):
-d 参数表示在后台运行容器,--build 参数表示在启动前重新构建 Docker 镜像。
- 后续启动(无需重新构建):
5. 配置 Nginx 反向代理(推荐)
为了在生产环境中正确处理 /chat 路径,强烈建议您配置 Nginx 作为反向代理。编辑您的 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/default):
保存并关闭文件后,请测试 Nginx 配置并重新加载 Nginx 服务:
6. 管理应用
以下是一些常用的 Docker Compose 命令来管理您的应用程序:
- 查看容器日志:
-f 参数表示持续跟踪日志输出。
-
停止应用:
-
更新应用(在拉取最新代码后):
7. 自动化部署(可选)
为了实现更高效的部署流程,您可以考虑使用持续集成/持续部署 (CI/CD) 工具,例如 GitHub Actions、GitLab CI、Jenkins 等。这些工具可以自动化构建、测试和部署您的应用程序。
8. 监控和扩展(可选)
对于生产环境,建议添加监控和扩展能力以确保应用程序的稳定性和性能。
-
使用 Docker 内置的监控工具:
-
使用更高级的监控工具: 例如 Prometheus 和 Grafana,可以提供更全面的监控和告警功能。
访问应用
完成以上步骤后,您的应用程序应该可以通过您的服务器域名或 IP 地址,并在 /chat 路径下访问。例如:http://your-domain.com/chat 或 http://your-server-ip/chat。
故障排除
如果在部署过程中遇到任何问题,请使用以下命令查看 Docker 容器的日志以进行排查:
检查日志输出中的错误信息,这通常能帮助您找到问题的根源。 ```
# 在服务器上克隆仓库
cd /opt
git clone https://gitee.com/Di_json/webapp-conversation.git# 在服务器上创建 .env 文件
cat > .env << EOF
NEXT_PUBLIC_APP_ID=你的应用ID (dify)
NEXT_PUBLIC_APP_KEY=你的应用密钥(dify)
NEXT_PUBLIC_API_URL=https://你的API地址(dify)
NEXT_PUBLIC_API_ORG_URL=https://你的组织API地址 (同源部署不需要,同城易比较特殊)
NEXT_PUBLIC_BASE_PATH=/chat
PORT=3020
NODE_ENV=production
EOFdocker-compose up -d --builddocker-compose up -dserver {
location /chat {
proxy_pass http://localhost:3020;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}sudo nginx -t
sudo systemctl reload nginxdocker-compose logs -fdocker-compose downdocker-compose down
docker-compose up -d --builddocker statsdocker-compose logs -f