《Docker 部署 React 项目:配置优化与运行验证步骤》
·
Docker 部署 React 项目的配置优化
构建阶段优化
使用多阶段构建减少镜像体积。第一阶段基于 node:alpine 安装依赖并构建项目,第二阶段基于 nginx:alpine 仅复制构建后的静态文件。示例 Dockerfile 片段:
FROM node:alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html
EXPOSE 80
环境变量处理
通过 .env 文件或 Docker 运行时参数注入环境变量。修改 React 项目的 package.json,确保构建时能读取环境变量:
"scripts": {
"build": "react-scripts build",
"start": "react-scripts start",
"test": "react-scripts test"
}
运行验证与性能调优
镜像运行与验证
构建并运行容器后,访问 http://localhost:80 验证部署结果。使用以下命令启动容器:
docker build -t react-app .
docker run -d -p 80:80 react-app
Nginx 配置优化
在 Dockerfile 中自定义 Nginx 配置,例如启用 gzip 压缩。创建 nginx.conf 文件并添加到镜像:
server {
listen 80;
gzip on;
gzip_types text/plain application/xml application/javascript;
location / {
root /usr/share/nginx/html;
index index.html;
try_files $uri $uri/ /index.html;
}
}
通过 COPY nginx.conf /etc/nginx/conf.d/default.conf 替换默认配置。
生产环境最佳实践
安全加固
使用非 root 用户运行 Nginx,在 Dockerfile 中添加:
RUN chown -R nginx:nginx /usr/share/nginx/html
USER nginx
健康检查配置
添加健康检查确保服务可用性:
HEALTHCHECK --interval=30s --timeout=3s \
CMD curl -f http://localhost/ || exit 1
缓存策略优化
通过 Docker 构建缓存加速后续构建。合理安排 COPY 指令顺序,将不常变动的文件(如 package.json)放在前面:
COPY package*.json ./
RUN npm install
COPY . .
更多推荐
所有评论(0)