添加nginx陪孩子
- 在项目根目录创建.docker/nginx/conf.d/nginx.conf文件,编辑内容如下
server {
listen 80;
server_name localhost; # 配置域名
location / {
root html; # 配置根目录,html表示默认目录/usr/share/nginx/html
try_files $uri $uri/ /index.html; # 配置入口文件
}
# 配置后端接口代理
# location /api {
# proxy_set_header Host $http_host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto $scheme;
# rewrite ^/api/(.*)$ /$1 break; # 重写
# proxy_pass http://127.0.0.1:8888; # 设置代理服务器的协议和地址
# }
# 配置接口文档
# location /api/swagger/index.html {
# proxy_pass http://127.0.0.1:8888/swagger/index.html;
# }
}
- 在根目录创建Dockerfile文件,编辑内容如下
# 阶段1, 添加node环境,并打包项目
FROM node:16.0.0
WORKDIR /app/
COPY . .
RUN yarn install
RUN yarn build
# 阶段2,添加Nginx服务,并代理我们的前端项目
FROM nginx:alpine
LABEL MAINTAINER debugksir<402351681@qq.com> # 作者信息
COPY .docker/nginx/conf.d/ /etc/nginx/conf.d/ # 将当前目录下的nginx配置拷贝到容器中的对应位置,nginx将读取这份配置
COPY --from=0 /app/dist /usr/share/nginx/html # 将阶段1中的打包文件拷贝到nginx代理的目录下
RUN ls -al /usr/share/nginx/html # 打印代理目标文件列表,验证是否成功
- 通过Dockerfile构建镜像
# 切换到项目目录
cd xxx/myapp
# 构建镜像
docker build -t myapp:1.0 .
- 通过我们打包的镜像,实例化容器
docker run -d -p 80:80 --name tongue_container myapp:1.0
# -d 后端运行
# -p 配置宿主机与容器端口映射
# -name 给容器命名
# myapp:1.0 镜像命:标签
- 通过浏览器访问IP:80验证结果