docker安装Jenkins并配置Git

前置条件: 安装docker

参考: Jenkins官方安装文档

1 安装docker:dind

shell 复制代码
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

2 通过Dockerfile安装Jenkins

dockerfile 复制代码
FROM jenkins/jenkins:2.452.3-jdk17
USER root
RUN apt-get update && apt-get install -y lsb-release
RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \
  http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg
RUN echo "deb [arch=$(dpkg --print-architecture) \
  signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \
  http://mirrors.aliyun.com/docker-ce/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"

3 构建

shell 复制代码
docker build -t myjenkins-blueocean:2.452.3-1 .

4 运行镜像

shell 复制代码
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.452.3-1 

5 访问web页面

shell 复制代码
# 非Docker安装方式获取初始解锁密码
cat /var/lib/jenkins/secrets/initialAdminPassword
# Docker安装方式获取初始解锁密码, 注意替换容器id或名称
docker exec ${CONTAINER_ID or CONTAINER_NAME} cat /var/jenkins_home/secrets/initialAdminPassword
# 访问`ip:8080`, 输入密码, 创建管理员账户, 安装推荐插件
# 安装插件Role-based Authorization Strategy(管理Jenkins用户权限)和Publish Over SSH(通过SSH发送文件并执行命令)

6 配置Git

shell 复制代码
# 进入容器
docker exec -it jenkins-blueocean bash
# 生成public key, 会提示生成位置
ssh-keygen -t ed25519 -C "your_email@example.com"
cd /var/jenkins_home/.ssh/
cat id_ed25519.pub
# 将得到的文本公钥(SSH Key)添加到github或gitlab中
相关推荐
打盹的小pig34 分钟前
git pull 报错
git
程序员老赵5 小时前
Docker 部署 Wiki.js:轻松搭建私有化维基知识库
docker·容器·开源
灯澜忆梦7 小时前
【Docker】#5 | 网络配置
网络·docker·容器
刘胡子大叔7 小时前
docker build 跑了 92 分钟还是失败了
docker·容器
她说可以呀8 小时前
Docker 镜像的两种创建方式
java·分布式·docker
虎头金猫8 小时前
从上传PPT到观众远程打开互动页面:Claper在CentOS 7上的Docker部署、互动组件设置与固定访问地址实战
linux·运维·网络·人工智能·docker·centos·powerpoint
%KT%10 小时前
ubuntu系统部署docker
运维·docker·容器
十二同学啊11 小时前
Docker 容器化技术详解:镜像、容器、网络与应用部署设计
网络·docker·eureka
I'mChloe11 小时前
不再逐台装Docker:我用Ansible Playbook批量统一服务器环境
服务器·docker·ansible
江湖有缘11 小时前
Docker实战 | 使用Docker部署Readeck书签管理工具
java·docker·eureka