feat: 添加 Docker 部署配置
- 添加 Dockerfile (多阶段构建: Node 构建 → Nginx 托管) - 添加 docker-compose.yml (端口 8801, 自动重启) - 添加 .dockerignore (减少构建体积) - 添加 docker-deploy.md (部署文档) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
43
.dockerignore
Normal file
43
.dockerignore
Normal file
@@ -0,0 +1,43 @@
|
||||
# Node.js
|
||||
node_modules
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
|
||||
# Build outputs
|
||||
dist
|
||||
build
|
||||
|
||||
# Git
|
||||
.git
|
||||
.gitignore
|
||||
.gitattributes
|
||||
|
||||
# IDE
|
||||
.vscode
|
||||
.idea
|
||||
*.swp
|
||||
*.swo
|
||||
|
||||
# Documentation
|
||||
README.md
|
||||
PRD.md
|
||||
*.md
|
||||
!docker-deploy.md
|
||||
|
||||
# Docker
|
||||
Dockerfile
|
||||
docker-compose.yml
|
||||
.dockerignore
|
||||
|
||||
# Environment
|
||||
.env
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# Test
|
||||
coverage
|
||||
.nyc_output
|
||||
|
||||
# Misc
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
33
Dockerfile
Normal file
33
Dockerfile
Normal file
@@ -0,0 +1,33 @@
|
||||
FROM node:20-alpine AS builder
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# 安装 pnpm(如果需要)
|
||||
# RUN corepack enable && corepack prepare pnpm@latest --activate
|
||||
|
||||
# 复制依赖文件
|
||||
COPY package*.json ./
|
||||
|
||||
# 安装依赖
|
||||
RUN npm install
|
||||
|
||||
# 复制源码
|
||||
COPY . .
|
||||
|
||||
# 构建生产版本
|
||||
RUN npm run build
|
||||
|
||||
# 运行阶段 - 使用 Nginx
|
||||
FROM nginx:alpine
|
||||
|
||||
# 从构建阶段复制产物
|
||||
COPY --from=builder /app/dist /usr/share/nginx/html
|
||||
|
||||
# 复制 Nginx 配置(可选)
|
||||
# COPY nginx.conf /etc/nginx/conf.d/default.conf
|
||||
|
||||
# 暴露端口
|
||||
EXPOSE 80
|
||||
|
||||
# 启动 Nginx
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
23
docker-compose.yml
Normal file
23
docker-compose.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
web:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: tianxuan-company
|
||||
ports:
|
||||
- "8801:80"
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "-q", "--spider", "http://localhost/"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
networks:
|
||||
- tianxuan-network
|
||||
|
||||
networks:
|
||||
tianxuan-network:
|
||||
driver: bridge
|
||||
60
docker-deploy.md
Normal file
60
docker-deploy.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# 天选公司 - Docker 部署配置
|
||||
|
||||
## 快速部署
|
||||
|
||||
### 首次部署
|
||||
```bash
|
||||
# 1. 拉取代码
|
||||
git pull
|
||||
|
||||
# 2. 构建并启动容器
|
||||
docker-compose up -d --build
|
||||
|
||||
# 3. 查看日志
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
### 更新部署
|
||||
```bash
|
||||
# 1. 拉取最新代码
|
||||
git pull
|
||||
|
||||
# 2. 重新构建并重启
|
||||
docker-compose up -d --build
|
||||
```
|
||||
|
||||
### 常用命令
|
||||
```bash
|
||||
# 启动
|
||||
docker-compose up -d
|
||||
|
||||
# 停止
|
||||
docker-compose down
|
||||
|
||||
# 重启
|
||||
docker-compose restart
|
||||
|
||||
# 查看状态
|
||||
docker-compose ps
|
||||
|
||||
# 查看日志
|
||||
docker-compose logs -f
|
||||
|
||||
# 查看实时资源
|
||||
docker stats
|
||||
```
|
||||
|
||||
## 端口配置
|
||||
|
||||
- 容器内:80 (Nginx)
|
||||
- 宿主机映射:8801
|
||||
|
||||
## 1Panel 反向代理配置
|
||||
|
||||
目标地址:`http://127.0.0.1:8801`
|
||||
|
||||
## 环境说明
|
||||
|
||||
- Node 版本:20-alpine (构建阶段)
|
||||
- Nginx 版本:alpine (运行阶段)
|
||||
- 构建产物直接打包进容器,无需在宿主机安装 Node.js
|
||||
Reference in New Issue
Block a user