只需 6 步使用 Docker 部署 React 项目
4792 阅读
0 评论
0 点赞
1. 前端的Dockerfile
如果后端API路径为
http://localhost:8000/api
FROM node:14
WORKDIR /app
COPY . /app
ENV REACT_APP_REST=/api
RUN npm install
RUN npm i -g serve
RUN npm run build
EXPOSE 5000
CMD ["serve", "-s", "build"]
2.后端的Dockerfile
FROM node:14
WORKDIR /app
COPY . /app
RUN npm install
EXPOSE 8000
CMD [ "npm", "run", "serve" ]
3.使用Express JS
的后端端点
端点以我们在前端定义的/api开头
const express = require("express");
const app = express();
const games = require("./api");
const cors = require("cors");
app.use(cors());
app.use(express.json());
app.get("/api/games", ({res}) => {
res.status(200).json(games);
});
const port = 8000;
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
4.Nginx的DockerFile
FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
5.创建 Nginx 配置
events {
worker_connections 768;
# multi_accept on;
}
http {
server {
listen 80 default_server;
listen [::]:80 default_server;
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri /index.html =404;
location / {
proxy_pass http://frontendreact:5000;
}
location /api {
proxy_pass http://backendnode:8000;
}
}
}
6.docker-compose
version: "3.9"
services:
backendnode:
build: ./backendnode
expose:
- "8000"
volumes:
- ./backendnode:/usr/src/app
frontendreact:
build: ./frontend
expose:
- "5000"
volumes:
- ./frontend:/usr/src/app
nginx:
build: ./nginx
ports:
- "80:80"
links:
- frontendreact
- backendnode
restart: always
- 本文分类:Docker
- 本文标签:DockerReactdocker-compose
- 浏览次数:4792 阅读
- 发布日期:2021-08-12 23:18:23
- 本文链接:http://elephdev.com/cDocker/229.html
- 上一篇 > CentOS7 Docker CE 在线安装
- 下一篇 > Docker 运行中的容器修改映射端口
发表评论 取消回复