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同理

相关推荐
行思理3 小时前
Docker 应该如何学习 分四个阶段
学习·docker·容器
..Move...4 小时前
Docker应用部署tomcat和nginx
nginx·docker·tomcat
ii_best6 小时前
按键精灵安卓/iOS脚本辅助,OpenCV实现自动化高效率工具
ios·自动化·编辑器·安卓
Jenwein7 小时前
Linux中使用docker的网络问题
后端·docker
java_logo8 小时前
Docker 部署 Debian 全流程教程
linux·运维·docker·容器·debian
❀͜͡傀儡师8 小时前
基于 docker compose 进行部署PandaWiki
运维·docker·容器
守城小轩9 小时前
基于Chrome140的TK账号自动化——脚本撰写(二)
自动化·浏览器自动化·tk自动化·rpa自动化·tk养号
熊猫钓鱼>_>9 小时前
基于模板提高垂直领域大模型应用场景的文字语言组织准确性
自动化·llm·多模态·模板·rag·垂直领域
Xiaoweidumpb10 小时前
Linux Docker docker-compose 部署python脚本
linux·python·docker
Broken Arrows11 小时前
解决同一个宿主机的两个容器无法端口互通报错“No route to host“的问题记录
运维·学习·docker