We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
想使用 Jenkins 推送镜像到制品库,必须先登录制品库。进入 Jenkins 容器,使用 docker login 登录,然后退出即可:
Jenkins
docker login
docker exec -it jenkins /bin/bash docker login 制品库地址:端口 exit;
编辑 /etc/docker/daemon.json 文件,将制品库地址写入,然后重启 docker 服务
/etc/docker/daemon.json
docker
vi /etc/docker/daemon.json sudo systemctl daemon-reload sudo systemctl restart docker
接着使用 docker login 命令进行登录
docker login 制品库地址:端口
在此之前,我们使用** 构建压缩包 => 直接上传到目标服务器 => 进行解压部署 的方式部署前端。在这里,我们更换为部署docker镜像。既然要制作自己的镜像,那就少不了 DockerFile。在前面我们写到过,DockerFile 是一个镜像制作过程的步骤描述。那么我们也可以简单的描述下我们自己的步骤。 我们在代码目录下,新建一个文件。叫 Dockerfile (注意,file全小写):
FROM nginx:1.15-alpine COPY dist /usr/share/nginx/html WORKDIR /usr/share/nginx/html
此Dockerfile声明了以下步骤:
nginx 1.15-alpine
dist
/usr/share/nginx/html
接着提交到代码库中。
我们打开之前 Jenkins 任务的编辑页面,改为以下脚本:
set -e timestamp=`date '+%Y%m%d%H%M%S'` node -v npm -v npm install -g cnpm --registry=https://registry.npm.taobao.org cnpm install npm run build # 编译docker镜像 docker build -t 172.16.81.150:8082/fe/nginx-fe-$timestamp . # 推送docker镜像到制品库 docker push 172.16.81.150:8082/fe/nginx-fe-$timestamp # 远程执行命令部署镜像 ssh -o StrictHostKeyChecking=no root@172.16.81.151 "docker pull 172.16.81.150:8082/fe/nginx-fe-$timestamp && \ docker stop jenkins-test && \ docker rm jenkins-test && \ docker run -p 80:80 -itd \ --name jenkins-test \ --restart always \ 172.16.81.150:8082/fe/nginx-fe-$timestamp"
在shell脚本中,声明一个变量只需要 变量名=值 即可。在命令中用 $-变量名 进行使用。 timestamp=date '+%Y%m%d%H%M%S':这个代表执行 date '+%Y%m%d%H%M%S' 这条命令,并赋值给 timestamp 这个变量。 date '+%Y%m%d%H%M%S' 代表输出当前时间的年月日时分秒 StrictHostKeyChecking: https://cikeblog.com/ssh-cant-established.html
date '+%Y%m%d%H%M%S'
这里可以看到,我们将之前脚本后半部分的流程: 压缩打包资源 => 通过 scp 上传压缩包** => ssh 远程执行解压部署命令 替换为:Dockerfile构建镜像 => 上传镜像到制品库 => 远程执行命令拉取镜像,停止容器,删除容器,启动新拉取的镜像
scp
ssh
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Jenkins 构建前端镜像并上传到制品库
Jenkins 登录认证制品库
想使用
Jenkins
推送镜像到制品库,必须先登录制品库。进入Jenkins
容器,使用docker login
登录,然后退出即可:Nginx 服务器登录认证制品库
编辑
/etc/docker/daemon.json
文件,将制品库地址写入,然后重启docker
服务接着使用
docker login
命令进行登录使用 DockerFile 构建前端镜像
在此之前,我们使用** 构建压缩包 => 直接上传到目标服务器 => 进行解压部署 的方式部署前端。
在这里,我们更换为部署docker镜像。既然要制作自己的镜像,那就少不了 DockerFile。
在前面我们写到过,DockerFile 是一个镜像制作过程的步骤描述。那么我们也可以简单的描述下我们自己的步骤。
我们在代码目录下,新建一个文件。叫 Dockerfile (注意,file全小写):
此Dockerfile声明了以下步骤:
nginx 1.15-alpine
版本的镜像。dist
文件夹拷贝到镜像的/usr/share/nginx/html
文件夹。/usr/share/nginx/html
下面执行。接着提交到代码库中。
修改 Jenkins 执行脚本
我们打开之前
Jenkins
任务的编辑页面,改为以下脚本:这里可以看到,我们将之前脚本后半部分的流程:
压缩打包资源 => 通过
scp
上传压缩包** =>ssh
远程执行解压部署命令替换为:
Dockerfile构建镜像 => 上传镜像到制品库 => 远程执行命令拉取镜像,停止容器,删除容器,启动新拉取的镜像
The text was updated successfully, but these errors were encountered: