在项目开发过程中,软件的编译和部署始终是一件令人头疼的事情,项目的各个分支、各个版本、各种环境,项目一多的话确实管理起来比较麻烦。
Jenkins 是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。
官方文档地址: https://jenkins.io/doc/
本文我们将介绍使用 docker 来安装 jenkins。项目示例为 java 项目。
1. 创建 docker-compose.yml 文件,写入如下内容
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts
user: root
privileged: true
container_name: jenkins
environment:
JAVA_OPTS: -Duser.timezone=Asia/Shanghai
volumes:
- jenkins-data:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /root/.docker:/root/.docker
ports:
- 8080:8080
- 50000:50000
networks:
- servicenet
volumes:
jenkins-data:
driver: local
networks:
servicenet:
external: true
2. 运行命令启动 jenkins
docker-compose up -d
3. 然后使用 docker logs -f <Container ID> 查看 jekins 容器运行时的日志,找到类似如下内容:
jenkins_test | *************************************************************
jenkins_test | *************************************************************
jenkins_test | *************************************************************
jenkins_test |
jenkins_test | Jenkins initial setup is required. An admin user has been created and a password generated.
jenkins_test | Please use the following password to proceed to installation:
jenkins_test |
jenkins_test | d386ab40eb3040d5a48ce2bea5a9005d
jenkins_test |
jenkins_test | This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
jenkins_test |
jenkins_test | *************************************************************
jenkins_test | *************************************************************
jenkins_test | *************************************************************
中间那串密码记住,最后在初始化 Jenkins 的时候需要用到。
4. 打开 http://<IP>:8080 ,其中 IP 即为docker运行的服务器的IP地址,使用 3 中的密码创建用户之后,进入初始化安装插件的界面,安装推荐的插件即可。
5. 插件安装完成之后,进入 系统管理/插件管理,安装 blue ocean插件,这是个比较友好的图形化界面。安装 Pipeline Utility Steps 这个插件,用来读取 pom 等文件。
6. 安装插件zentimestampt,在配置里面添加全局属性Date pattern for the BUILD_TIMESTAMP (build timestamp) variable,yyyyMMddHHmmss。这个插件是用来在此系列文章的示例中使用的,可以根据实际的需要安装。