首先先用npm run build打包成可以部署的文件,一般为dist文件夹,以下以打包成dist文件夹为例
在dist文件夹同级下,创建一个文件名为nginx.conf,内容编写为,该文件是容器中nginx配置文件,内容均可自定义
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
要注意server location中的root要跟下面Dockerfile中配置的dist文件夹路径一致
在dist文件夹同级下,创建一个文件名为Dockerfile,内容编写为
#(latest是下载最新的nginx,也可以指定nginx版本)
FROM nginx:latest
#(xxx 为名字,作者/维护者姓名)
MAINTAINER xxx
#(当前目录的dist文件夹复制到容器的/usr/share/nginx/html/文件夹,可以自定义,但是要跟后续nginx.conf配置项中的对应)
COPY dist/ /usr/share/nginx/html/
#(当前目录的nginx.conf复制到容器的nginx配置中)
COPY nginx.conf /etc/nginx/nginx.conf
RUN echo 'echo init ok!!'
创建完成后,下一步创建镜像,镜像名可以自定义,例如yixianWeb,命令为
docker build -t yixianweb .
要注意有个点 .
执行完毕可以使用
docker image ls
查看一下镜像是否成功
之后创建容器,容器名可以自定义,例如yixianweb,-p后面的8848:80为映射端口使用,8848为服务器的端口,开放后用于访问(ip:8848),80为容器内部的端口,例如上面nginx配置项中配置的是80
docker run -d --name yixianweb -p 8848:80 yixianweb
至此,容器启动成功,防火墙开放8848后,可以通过ip:8848访问项目
使用
docker exec -it yixianweb /bin/bash
可以进入容器中操作