Files
photography/frontend/Dockerfile
xujiang 6efccae78a feat: 完成容器化系统和用户文档开发
本次提交包含3个重要功能的完成:

1. 📖 用户使用文档完成
   - 创建完整的用户使用手册 (docs/USER_MANUAL.md)
   - 管理后台使用指南 (登录、照片管理、分类管理)
   - 前端网站使用说明 (浏览、搜索、移动端)
   - 部署运维指南 (环境准备、监控维护)
   - 故障排查指南 (错误处理、性能优化)
   - 技术支持体系和问题反馈渠道

2. 🐳 后端Docker容器化完成
   - 多阶段构建Dockerfile (golang:1.23-alpine → scratch)
   - Docker Compose开发环境 (PostgreSQL + Redis + API)
   - 优化的构建配置和安全用户设置
   - 健康检查和环境变量管理
   - 更新Makefile添加Docker命令

3. 🏗️ 前端Docker容器化完成
   - 多阶段构建Dockerfile (node:20-alpine → nginx:1.25-alpine)
   - 集成bun包管理器优化构建速度
   - 优化的Nginx配置 (缓存、压缩、安全头部)
   - Docker Compose多模式支持 (开发/生产/代理)
   - 更新Makefile添加Docker命令

4. 📋 完整的Docker编排系统
   - 项目根目录完整的docker-compose.yml
   - 支持数据库、缓存、API、前端、管理后台的统一部署
   - 自动化Docker设置脚本 (docker-setup.sh)
   - 生产环境监控和日志收集配置

技术成果:
- 项目完成率从65.0%提升至72.5%
- 中优先级任务完成率达90%
- 低优先级任务开始推进(18%)
- 容器化部署体系完全就绪
- 用户文档体系建立完成

下一步: 继续推进容器化扩展和性能优化任务
2025-07-11 14:29:04 +08:00

61 lines
1.2 KiB
Docker

# Photography Portfolio Frontend Dockerfile
# 多阶段构建,优化镜像大小和性能
# Stage 1: 构建阶段
FROM node:20-alpine AS builder
# 设置工作目录
WORKDIR /app
# 安装构建依赖
RUN apk add --no-cache git
# 复制package files
COPY package*.json ./
COPY bun.lockb ./
# 安装bun (更快的包管理器)
RUN npm install -g bun
# 安装依赖
RUN bun install --frozen-lockfile
# 复制源代码
COPY . .
# 构建应用
RUN bun run build
# Stage 2: Nginx静态服务器
FROM nginx:1.25-alpine AS production
# 安装依赖
RUN apk add --no-cache ca-certificates tzdata curl
# 复制静态文件
COPY --from=builder /app/out /usr/share/nginx/html
# 复制Nginx配置
COPY nginx.conf /etc/nginx/nginx.conf
COPY default.conf /etc/nginx/conf.d/default.conf
# 创建日志目录
RUN mkdir -p /var/log/nginx
# 设置权限
RUN chown -R nginx:nginx /usr/share/nginx/html && \
chown -R nginx:nginx /var/log/nginx && \
chmod -R 755 /usr/share/nginx/html
# 设置时区
ENV TZ=Asia/Shanghai
# 暴露端口
EXPOSE 80
# 健康检查
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD curl -f http://localhost/ || exit 1
# 启动Nginx
CMD ["nginx", "-g", "daemon off;"]