# Docker 发布指南 本文档说明如何将 MarketingSite 项目打包为 Docker 镜像并部署。 ## 前置要求 - Docker 已安装并运行 - 项目依赖已安装(`yarn install`) ## 构建 Docker 镜像 ### 方法1: 使用 Docker 命令 在 `site` 目录下执行: ```bash cd site docker build -t marketing-site:latest . ``` ### 方法2: 使用 docker-compose 在 `site` 目录下执行: ```bash cd site docker-compose build ``` ## 运行容器 ### 方法1: 使用 Docker 命令 ```bash docker run -d -p 3000:3000 --name marketing-site marketing-site:latest ``` ### 方法2: 使用 docker-compose ```bash cd site docker-compose up -d ``` 容器启动后,访问 http://localhost:3000 ## 查看日志 ```bash docker logs -f marketing-site ``` 或使用 docker-compose: ```bash cd site docker-compose logs -f ``` ## 停止和删除容器 ```bash docker stop marketing-site docker rm marketing-site ``` 或使用 docker-compose: ```bash cd site docker-compose down ``` ## 发布到 Docker Hub ### 1. 登录 Docker Hub ```bash docker login ``` ### 2. 标记镜像 ```bash docker tag marketing-site:latest your-username/marketing-site:latest ``` ### 3. 推送到 Docker Hub ```bash docker push your-username/marketing-site:latest ``` ## 发布到私有仓库 ### 标记镜像 ```bash docker tag marketing-site:latest registry.example.com/marketing-site:latest ``` ### 推送镜像 ```bash docker push registry.example.com/marketing-site:latest ``` ## 在其他服务器上运行 ```bash docker pull your-username/marketing-site:latest docker run -d -p 3000:3000 --name marketing-site your-username/marketing-site:latest ``` ## 环境变量配置 如需配置环境变量,可以通过以下方式: ```bash docker run -d -p 3000:3000 \ -e NODE_ENV=production \ -e NEXT_PUBLIC_API_URL=https://api.example.com \ --name marketing-site \ marketing-site:latest ``` 或在 `docker-compose.yml` 中添加: ```yaml environment: - NODE_ENV=production - NEXT_PUBLIC_API_URL=https://api.example.com ``` ## 健康检查 镜像已配置为监听 `0.0.0.0:3000`,可在容器启动后进行健康检查: ```bash curl http://localhost:3000 ``` ## 故障排查 ### 查看容器状态 ```bash docker ps -a ``` ### 查看容器日志 ```bash docker logs marketing-site ``` ### 进入容器调试 ```bash docker exec -it marketing-site sh ``` ## 注意事项 1. 确保端口 3000 未被占用 2. 生产环境建议使用反向代理(如 Nginx)处理 HTTPS 3. 如需修改端口,更新 `docker-compose.yml` 中的端口映射 4. 镜像基于 `node:20-alpine`,体积较小但功能完整