zoukankan      html  css  js  c++  java
  • 使用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
    
  • 相关阅读:
    微人事项目-mybatis-持久层
    通过外键连接多个表
    springioc
    Redis 消息中间件 ServiceStack.Redis 轻量级
    深度数据对接 链接服务器 数据传输
    sqlserver 抓取所有执行语句 SQL语句分析 死锁 抓取
    sqlserver 索引优化 CPU占用过高 执行分析 服务器检查
    sql server 远程备份 bak 删除
    冒泡排序
    多线程 异步 beginInvoke EndInvoke 使用
  • 原文地址:https://www.cnblogs.com/cwshuo/p/15402855.html
Copyright © 2011-2022 走看看