下载镜像
docker pull jenkins/jenkins:2.346.1-lts
创建复制用临时容器
创建
docker run -d -p 8080:8080 -p 50000:50000 --name jenkin jenkins/jenkins:2.346.1-lts
复制文件到本地
mkdir -p /usr/docker/jenkins
docker cp jenkin:/var/jenkins_home /usr/docker/jenkins
修改文件夹权限
需要修改下目录权限,因为当映射本地数据卷时,/data/jenkins_home/目录的拥有者为root用户,
而容器中jenkins用户的 uid 为 1000。
我们创建一个jenkins目录
chown -R 1000:1000 /usr/docker/jenkins
docker rm -f jenkin
修改镜像源
cd /usr/docker/jenkis/jenkins_home
vim hudson.model.UpdateCenter.xml
#将url内容修改为清华大学官方镜像
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
启动容器
docker run -u root -d -p 8083:8083 -p 50000:50000 \
-v /usr/docker/jenkins/jenkins_home:/var/jenkins_home \
-v $(which docker):/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/jdk/jdk1.8.0_333:/usr/local/java \
-v /usr/mvn/apache-maven-3.9.0:/usr/local/maven \
--name jenkins jenkins/jenkins:2.396
原文链接:Docker 搭建 Jenkins 容器 (完整详细版)_Touch&-DevPress官方社区 (youkuaiyun.com)
$(which docker) 语句表示,如果“which docker”在容器上运行,Docker 也会在本地计算机上运行“which container”,并将执行结果返回给容器
插件管理
在实现持续集成之前, 需要确保以下插件安装成功。
- Maven Integration : Maven 集成管理插件。
- Docker : Docker集成插件。
- GitLab : GitLab集成插件。
- Publish Over SSH:远程文件发布插件。
- SSH: 远程脚本执行插件。
- Git server:可以直接插件安装git,避免本地挂载的宝贝
全局配置
新建任务
基础依赖信息安装到服务器上的本地仓库
clean install -Dmaven.test.skip=true -f pom.xml
含义
-
clean install maven命令清除,打包
-
-Dmaven.test.skip=true 跳过测试
-
dockerfile:build 启动dock