前端开发者 Docker 实战
为什么前端需要 Docker?
1. 环境一致性:消除"在我电脑上能运行"的问题
2. 简化部署:一键部署,无需手动配置环境
3. 隔离开发环境:不影响本地系统
前端项目 Docker 化
开发环境
FROM node:20-alpine AS development
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "run", "dev"]
多阶段构建
# 构建阶段
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# 生产阶段
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Docker Compose
version: '3.8'
services:
frontend:
build:
context: .
target: development
ports:
- "3000:3000"
volumes:
- .:/app
- /app/node_modules
environment:
- NODE_ENV=development
最佳实践
1. 使用 .dockerignore:排除 node_modules 等无关文件
2. 多阶段构建:减小镜像体积
3. 利用缓存:合理安排 Dockerfile 指令顺序
4. 最小基础镜像:使用 alpine 版本
总结
Docker 是每个前端开发者都应该掌握的工具,它能极大提升开发效率和部署可靠性。