当前位置: 首页 > article >正文

ubuntu中用docker部署jenkins,并和码云实现自动化部署

1.部署jenkins

docker network create jenkins
docker run --name jenkins-docker --rm --detach \
  --privileged --network jenkins --network-alias docker \
  --env DOCKER_TLS_CERTDIR=/certs \
  --volume jenkins-docker-certs:/certs/client \
  --volume jenkins-data:/var/jenkins_home \
  --publish 2376:2376 \
  docker:dind --storage-driver overlay2

新建一个Dockerfile文件,复制下面的内容保存 

FROM jenkins/jenkins:2.426.1-jdk17
USER root
RUN apt-get update && apt-get install -y lsb-release
RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \
  https://download.docker.com/linux/debian/gpg
RUN echo "deb [arch=$(dpkg --print-architecture) \
  signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \
  https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
RUN apt-get update && apt-get install -y docker-ce-cli
USER jenkins
RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
docker build -t myjenkins-blueocean:2.426.1-1 .

上面生成镜像很慢的话,可以买国外的服务器生成好后,再弄到自己的服务器起服务

docker run --name jenkins-blueocean --restart=on-failure --detach \
  --network jenkins --env DOCKER_HOST=tcp://docker:2376 \
  --env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
  --publish 8080:8080 --publish 50000:50000 \
  --volume jenkins-data:/var/jenkins_home \
  --volume jenkins-docker-certs:/certs/client:ro \
  myjenkins-blueocean:2.426.1-1

2.解锁jenkins

浏览到http://localhost:8080(或安装 Jenkins 时为 Jenkins 配置的任何端口)并等待“解锁 Jenkins”页面出现 

 

如果您使用官方jenkins/jenkins镜像在 Docker 中运行 Jenkins,您可以使用它sudo docker exec ${CONTAINER_ID or CONTAINER_NAME} cat /var/jenkins_home/secrets/initialAdminPassword在控制台中打印密码,而无需在容器中执行

安装推荐的插件 

安装自己的插件

1.generic-webhook-trigger

新建任务

选择多分支流水线

 

只触发master分支

 保存

码云仓库里面的管理里的webhooks的url中填写http://JENKINS_URL/generic-webhook-trigger/invoke?token=test_token

JENKINS_URL 变量为jenkins的服务地址  如 http://183.37.35.44:8080

 项目中的Jenkinsfile 文件中 GenericTrigger的token要与上面url的token对应

 完毕 现在可以提交代码自动触发部署了

gitlab同理 


http://www.kler.cn/a/133891.html

相关文章:

  • sol机器人pump机器人如何实现盈利的?什么是Pump 扫链机器人?
  • LeetCode【0035】搜索插入位置
  • 阿里云和七牛云对象存储区别和实现
  • Android OpenGL ES详解——立方体贴图
  • 在 Service Worker 中caches.put() 和 caches.add()/caches.addAll() 方法他们之间的区别
  • 阿里巴巴通义灵码推出Lingma SWE-GPT:开源模型的性能新标杆
  • flutter TabBar指示器
  • 实在智能携手中国电信翼支付,全球首款Agent智能体亮相2023数字科技生态大会
  • redis问题归纳
  • 八叉树(Octree)和KD树区别?2d tree与3d tree区别?
  • C语言链式栈
  • mac控制台命令小技巧
  • SQLite3 数据库学习(文章链接汇总)
  • 卷积神经网络(VGG-16)海贼王人物识别
  • CSS英文单词强制截断换行
  • 开拓经验专栏:从十来天的晨型人体验开始
  • Linux命令(125)之scp
  • 被锁总时间
  • 数据结构:红黑树的插入实现(C++)
  • 坐标系下的运动旋量转换
  • SingleTreePolicyInterpreter
  • k8s pod 处于Terminating的原因分析和解决处理——筑梦之路
  • 【Go入门】 Go的http包详解
  • QtC++与QUndoView详解
  • lv11 嵌入式开发 ARM指令集中(伪操作与混合编程) 7
  • P1304 哥德巴赫猜想