添加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.0WORKDIR /app/COPY . .RUN yarn installRUN yarn build# 阶段2,添加Nginx服务,并代理我们的前端项目FROM nginx:alpineLABEL 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验证结果