docker部署前端项目(包含前端跨域、websocket)

基本参数(请自行替换)

服务器ip:192.168.0.1
用户:node
服务器内路径:~/nginx
Docker内路径:/usr/share/nginx/html/

项目打包

npm run build

上传dist文件夹、Dockerfile、nginx配置

Dockerfile

FROM nginx
COPY dist/ /usr/share/nginx/html/
COPY nginx/default.conf /etc/nginx/conf.d/default.conf

nginx配置 default.conf

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    access_log  /var/log/nginx/host.access.log  main;
    error_log  /var/log/nginx/error.log  error;

    root   /usr/share/nginx/html;
    index  index.html index.htm;

    location /{
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

	# nginx跨域配置
    location /api{
        proxy_pass http://192.168.0.141:8088/;
        proxy_pass_request_headers  on;
        rewrite "^/api/(.*)$" /$1 break;

		# 下面是websocket需要的配置
        proxy_http_version 1.1;
        #这里必须使用http 1.1
        #下面两个必须设置,请求头设置为ws请求方式
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

文件上传(使用scp命令)

scp -r ./dist node@192.168.0.1:~/nginx
scp  .\Dockerfile node@192.168.0.1:~/nginx
scp  .\default.conf node@192.168.0.1:~/nginx/nginx 

使用shell快速部署或重新部署

使用cae-app-react作为镜像名
使用cae-app作为容器名
如果不一样,请自行修改命令

在~/nginx下运行

docker stop $(docker ps -a|grep cae-app-react|awk '{print $1}')
docker rm $(docker ps -a|grep cae-app-react|awk '{print $1}')
docker rmi cae-app-react
# 上面是删除之前的容器与镜像
docker build -t cae-app-react .
docker run -p 80:80 -d --name cae-app cae-app-react
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐