docker安装jenkins
定制自己的jenkins镜像,官网: https://github.com/jenkinsci/docker
1. Dockerfile:
FROM jenkins/jenkins:lts USER root # 安装docker-compose,可选,因为自己使用了这个插件 RUN curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose RUN chmod +x /usr/local/bin/docker-compose # 安装jenkins插件,插件安装完后可以在web界面上进行升级插件 COPY plugins.txt /usr/share/jenkins/ref/plugins.txt RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/plugins.txt
plugins.txt:
https://github.com/fabric8io/jenkins-docker/blob/master/plugins.txt
2. docker-compose.yml
version: '3'
services:
jenkins:
image: cymin/jenkins:1.0
container_name: jenkins
build:
context: .
user: jenkins
ports:
- 8888:8080
- 50000:50000
volumes:
- ./data:/var/jenkins_home
- ./m2:/root/.m2
- /var/run/docker.sock:/var/run/docker.sock
- /usr/local/bin/docker:/usr/bin/docker
environment:
- JAVA_OPTS="-Djava.util.logging.config.file=/var/jenkins_home/log.properties"
networks:
default:
external:
name: service
3. Build and Start :
docker-compose build
docker-compose up -d
4. Access
http://localhost:8888
安装完成后在浏览器进行访问,可升级响应的插件、修改用户名和密码,以便后续登录。
常用的插件:
Docker Commons Plugin
Docker Plugin
Artifactory
Copy Artifact
Maven Release Plug-in
Next Build Number
Timestamper
Publish Over SSH
Git Parameter
Config File Provider
Jenkins Usage
在github上新建maven项目,本人项目的测试地址: https://github.com/cymin/hello
下面是具体的详细配置截图:
1. 配置github项目
2. 参数化构建项目
3. 使用git tag
5. 使用jenkins提供的配置文件替换项目中的配置文件(可选)
6. 重新生成名称相同的镜像后,原来的镜像名称会变成<none>,在这里进行删除上次编译的镜像。
# 批量删除名称为<none>的镜像 docker rmi -f `docker images |grep \<none\>|awk '{print $3}'`&> /dev/null
7. maven项目编译配置
8. 编译后的操作,生成镜像
注意下面的"--no-cache"参数设置,不然jenkins不会checkout最新的代码而使用缓存进行再次构建。
echo "--------------------------------< Deploy hello >--------------------------------" cd $WORKSPACE # Build docker-compose build --no-cache container_name=cymin/hello docker images | grep $container_name # Deploy docker-compose up -d docker ps | grep $container_name
8. 执行构建
构建的部分日志:
9. Test
➜ ~ curl localhost:8080 hello, cymin666
10. 总结
类似的文章有很多,但是每个人的使用是不一样的,只为自己记录一下自己两天的学习?。
其他相关
1. 使用Docker Remote REST API
开启方式参照博客: https://my.oschina.net/u/2306127/blog/777695
使用方式,比如:
docker -H tcp://192.168.201.206:2376 ps
________________________________________________________ The end. ________________________________________________________