【docker】nexus+gitlab+jenkins 结合使用笔记

前言

  • 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 [email protected] "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"

你可能感兴趣的:(docker,linux)