zoukankan      html  css  js  c++  java
  • Vue项目在Docker的自动化部署

    操作系统:CentOS

    部署环境:Docker

    CI/CD工具:Jenkins

     

    1.环境配置

    安装Jenkins:Centos安装Jenkins

    安装Docker:Centos安装Git、DotNet、Docker

     

    2.Github创建仓库

    https://github.com/longtaosu/Vue2DockerDemo

     

    3.本地初始化Vue项目

    初始化过程请参考:Vue + Element UI项目初始化

    安装依赖

    cnpm install

    运行代码

    npm run dev

    4.将代码提交到Github

    添加到本地暂存

    git add .

    添加注释

    git commit -m "init"

    提交代码

    git push

    现在回到Github,我们的代码已经完成了提交

     

    5.配置Nginx

    在项目中添加Nginx的配置文件

    文件的具体内容请查看Github的源文件,主要核心配置为

        server {
            listen       80;
            server_name  localhost;
            location / {
                root   /usr/share/nginx/html;
                index  index.html index.htm;
            }
            location ^~/api/ {        
                rewrite ^/api/(.*)$ /$1 break;        
                proxy_set_header   Host             $host;        
                proxy_set_header   x-forwarded-for  $remote_addr;        
                proxy_set_header   X-Real-IP        $remote_addr;        
                proxy_pass http://localhost:8080;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   /usr/share/nginx/html;
            }
        }

    Nginx监听本地的80端口,并将请求重定向到本地的8080端口(该端口在Vue的项目中配置)

     

    6.编写Dockerfile和sh文件

    6.1Dockerfile文件

    Dockerfile文件内容:

     1 FROM node:lts-alpine as build-stage
     2 WORKDIR /app
     3 COPY package*.json ./
     4 RUN npm install -g cnpm --registry=https://registry.npm.taobao.org
     5 RUN cnpm install
     6 COPY . .
     7 RUN npm run build
     8 
     9 # production stage
    10 FROM nginx:stable-alpine as production-stage
    11 COPY config/nginx/nginx.conf /etc/nginx/nginx.conf
    12 COPY --from=build-stage /app/dist /usr/share/nginx/html
    13 
    14 EXPOSE 80
    15 CMD ["nginx", "-g", "daemon off;"]

    第3行,先加载package*.json,配合第4、5行安装相关的依赖

    第6行将Github代码复制,并配合第7行代码编译

    第10到底12行配置Nginx

    6.2setup.sh文件

    该文件主要是对Docker的操作,包括镜像的编译,程序的容器部署等

     1 image_version=`date +%Y%m%d%H%M`;
     2 echo $image_version;
     3 # cd vue2docker
     4 git pull --rebase origin master;
     5 docker stop vue2docker;
     6 docker rm vue2docker;
     7 docker build -t vue2docker:$image_version .;
     8 docker images;
     9 docker run -p 10002:80 -d --name vue2docker vue2docker:$image_version;
    10 # -v ~/docker-data/house-web/appsettings.json:/app/appsettings.json -v ~/docker-data/house-web/NLogFile/:/app/NLogFile   --restart=always
    11 docker logs vue2docker;
    12 #删除build过程中产生的镜像    #docker image prune -a -f
    13 docker rmi $(docker images -f "dangling=true" -q)

     将程序更新到Github

     

    7.Jenkins配置

    7.1创建一个【自由风格项目】

    点击【确定】

    7.2源代码管理

     

    7.3源码管理

     

    7.4构建触发器

     

    7.5构建环境

     

    7.6构建

     

    点击【应用】 --> 【保存】

     

     

    8.Jenkins

    查看构建历史

    蓝色表示构建成功(根据Jenkis的设置,Jenkins会每2分钟查询一次Github)

     查看构建结果

     

     

  • 相关阅读:
    Linux基本命令-chmod
    Linux操作系统启动流程
    博客园背景美化
    Windows安装python3.x后,pip list警告!DEPRECATION: The default format will switch to columns in the future.
    Python2.7更新pip:UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position 7: ordinal not in range(128)
    .Net程序员学用Oracle系列(23):视图理论、物化视图
    .Net程序员学用Oracle系列(22):分析函数(OVER)
    .Net程序员学用Oracle系列(21):分组查询(GROUP BY)
    .Net程序员学用Oracle系列(20):层次查询(CONNECT BY)
    .Net程序员学用Oracle系列(19):导出、导入(备份、还原)
  • 原文地址:https://www.cnblogs.com/imstrive/p/10867943.html
Copyright © 2011-2022 走看看