Jenkins的原理其实很简单,就是依据各种插件做package、build等功能,然后再帮你去执行一些shell命令,本篇文章参考我之前的两篇

​​​​​​Docker创建Jenkins容器自动部署maven项目经验

vue-cli项目打包用docker部署到服务器

主要功能文件

1.default.conf

/docker/jenkins_home/workspace/Moon-Vue/unpackage/default.conf

server {
    listen   80;
    server_name  localhost; # 修改为docker服务宿主机的ip
    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;
    }
}

2.Dockerfile

/docker/jenkins_home/workspace/Moon-Vue/unpackage/Dockerfile

FROM nginx
 
MAINTAINER cick-y
 
RUN rm /etc/nginx/conf.d/default.conf
 
ADD default.conf /etc/nginx/conf.d/
 
COPY dist/ /usr/share/nginx/html/

3.moon.sh

/docker/jenkins_home/moon.sh

cd /docker/jenkins_home/workspace/Moon-Vue/unpackage/
cid=$(docker ps -a| grep "moon")
if [ "$cid" != "" ]; then
        docker stop moon
        docker rm moon
fi
echo "docker ps id"
echo $cid
images=$(docker images| grep "moon" | awk '{print $3}')
if [ "$images" != "" ]; then
        docker rmi $images
fi
echo "docker images id"
echo $images
docker build -t moon:1.0 .
newimages=$(docker images| grep "moon" | awk '{print $3}')
docker run -itd --name moon -p8081:80 $newimages

主要注意事项

1.要用到SSH插件以传输文件为幌子去服务器主机执行shell命令

 注意:项目设置里面的配置SSH是以系统设置全局配置里面的SSH目录为前缀,在它的目录下面去配置的

 2.nodejs插件配置

 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐