使用 Docker 部署 React + Nginx 应用教程

目录

    • [1. 创建react项目结构](#1. 创建react项目结构)
    • [2. 创建 .dockerignore](#2. 创建 .dockerignore)
    • [3. 创建 Dockerfile](#3. 创建 Dockerfile)
    • [4. 创建 nginx.conf](#4. 创建 nginx.conf)
    • [5. 构建和运行](#5. 构建和运行)
    • [6. 常用命令](#6. 常用命令)

1. 创建react项目结构

2. 创建 .dockerignore

plaintext:.dockerignore 复制代码
# 依赖目录
node_modules
npm-debug.log

# 构建输出
dist
build

# 开发环境文件
.git
.gitignore
.env
.env.local
.env.development
.env.test
.env.production

3. 创建 Dockerfile

dockerfile:Dockerfile 复制代码
# 构建阶段
FROM node:18-alpine as build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

# 生产阶段
FROM nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

4. 创建 nginx.conf

nginx:nginx.conf 复制代码
server {
    listen 80;
    server_name localhost;
    
    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
        try_files $uri $uri/ /index.html;
    }
}

完整的项目结构

5. 构建和运行

在项目根目录下执行以下命令:

bash 复制代码
# 构建Docker镜像
docker build -t react-nginx .

docker run -d -p 80:80 react-nginx

6. 常用命令

bash 复制代码
# 查看运行中的容器
docker ps

# 停止容器
docker stop <container_id>

# 查看容器日志
docker logs <container_id>

# 进入容器内部
docker exec -it <container_id> sh
相关推荐
喜欢你,还有大家3 小时前
Docker-仓库-镜像制作
运维·docker·容器
武子康6 小时前
Java-166 Neo4j 安装与最小闭环 | 10 分钟跑通 + 远程访问 Docker neo4j.conf
java·数据库·sql·docker·系统架构·nosql·neo4j
再希6 小时前
React+Tailwind CSS+Shadcn UI
前端·react.js·ui
toooooop86 小时前
Nginx 反向代理 HTTPS CDN 配置检查清单(避坑版)
运维·nginx·https·cdn
群联云防护小杜6 小时前
国产化环境下 Web 应用如何满足等保 2.0?从 Nginx 配置到 AI 防护实战
运维·前端·nginx
浪裡遊9 小时前
Next.js路由系统
开发语言·前端·javascript·react.js·node.js·js
计算机小手9 小时前
使用 llama.cpp 在本地高效运行大语言模型,支持 Docker 一键启动,兼容CPU与GPU
人工智能·经验分享·docker·语言模型·开源软件
尽兴-9 小时前
[特殊字符] 微前端部署实战:Nginx 配置 HTTPS 与 CORS 跨域解决方案(示例版)
前端·nginx·https·跨域·cors·chrom
岚天start10 小时前
KubeSphere在线安装单节点K8S集群
docker·容器·kubernetes·k8s·kubesphere·kubekey
栗子~~10 小时前
shell-基于k8s/docker管理容器、监控模型训练所消耗的最大CPU与最大内存脚本
docker·容器·kubernetes