• 使用Shell脚本打包前端项目并部署镜像


    1.提前安装好Node、Git、Docker环境(此处略过不讲)

    2.git clone '前端项目url' 拉取前端项目

    • 编写Dockerfile脚本打包镜像
    FROM nginx   #设置基础镜像
    COPY nginx.conf /etc/nginx/nginx.conf   
    COPY dist/ /usr/vuejs/nginx/   
    EXPOSE 80   #仅仅只是声明端口
    CMD ["nginx", "-g", "daemon off;"]   #启动nginx镜像
    
    • 修改nginx文件
    #user  nobody;
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
        underscores_in_headers on;
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        gzip  on; # 压缩开关
        gzip_comp_level 6; # 压缩等级 [1-9] 推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源)
        gzip_min_length 200; # 开始压缩的最小长度(再小就不要压缩了,意义不在)
        gzip_types application/javascript text/css text/xml;
    
    
        server {
            listen       80;
            server_name  ysske.cn;
    
            add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
        add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
    
            location / {
    
                try_files $uri $uri/ /index.html;
                #root   html;
                #index  index.html index.htm;
            }
    
             root /usr/vuejs/nginx/;
             index index.html;
    
        }
    }
    
    
    • 编写update.sh脚本打包镜像
    cd yssk-web  #前端项目目录
    git pull
    npm install --registry=https://registry.npm.taobao.org
    npm run build:prod  #打包前端项目生成dist文件
    rm -rf dockerbuild
    mkdir dockerbuild
    cp -r dist ./dockerbuild
    cp Dockerfile ./dockerbuild
    cp nginx.conf ./dockerbuild
    cd dockerbuild
    docker build -t   yssk-web-cws .  #用Dockerfile脚本打包镜像
    cd ..
    rm -rf dockerbuild
    
    • 编写docker.sh脚本删除并重启镜像
    docker rm -f web-yssk-cws
    docker run --rm -d -p 9628:80 --name web-yssk-cws yssk-web-cws:latest
    
  • 相关阅读:
    PostgreSQL管理工具:pgAdminIII
    PostgresQL7.5(开发版)安装与配置(win2003测试通过)
    让PosggreSQL运行得更好
    在.NET程序中使用PIPE(管道技术)
    在浏览网页过程中,单击超级链接无任何反应
    字符串转换
    数组初始化
    使用现有的COM
    后台服务程序开发模式(一)
    COM的四本好书
  • 原文地址:https://www.cnblogs.com/cwshuo/p/15402855.html
Copyright © 2020-2023  润新知