前言
- 2核4g的服务器不能同时开启nexus+gitlab+jenkins ,只能开启其中2个。
流程
- 要让Jenkins能推送到nexus 需要在jenkins里登录:
docker exec -it jenkins /bin/bash
docker login 制品库地址:端口
exit;
- nginx服务器的docker 也需要配置daemon.json
vi /etc/docker/daemon.json
sudo systemctl daemon-reload
sudo systemctl restart docker
{
"insecure-registries" : [
"xxxx.xxxx.xxx.xx:8082"
]
}
- 也要登录nexus:
docker login 制品库地址:端口
- 在自己代码中增加dockerfile并推送至仓库:
FROM nginx:1.15-alpine
COPY dist /usr/share/nginx/html
WORKDIR /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 xxx.xx.xxx.xx:8082/fe/nginx-fe-$timestamp .
# 推送docker镜像到制品库
docker push xxx.xx.xxx.xx:8082/fe/nginx-fe-$timestamp
# 远程执行命令部署镜像
ssh -o StrictHostKeyChecking=no root@xxx.xx.xxx "docker pull xxx.xx.xxx.xx:8082/fe/nginx-fe-$timestamp && \
docker stop jenkins-test && \
docker rm jenkins-test && \
docker run -p 80:80 -itd \
--name jenkins-test \
--restart always \
xxx.xx.xxx.xx:8082/fe/nginx-fe-$timestamp"