这是我参与8月更文挑战的第9天,活动详情查看:8月更文挑战
Docker结合Jenkins实现项目自动化部署
1.下载Jenkins镜像
docker pull jenkins
默认情况下,如果没有指定版本号和前缀的话,默认都是到Docker Hub官方去下载镜像的,默认版本标签是“latest”
注:如果是 Windows/Mac 需要登录到 Boot2docker 虚拟机之上,而Linux无需如此。
docker-machine ssh default
2.启动Jenkins容器
docker run -d -p 28080:8080 --name jenkins -v /opt/jenkins:/var/jenkins_home jenkins
jenkins默认端口号是8080,因为宿主机上已经存在8080端口占用了,因此这里我映射成28080端口。 同时将Jenkins的数据挂载到宿主机上的 /opt/jenkins 目录下。
执行上面的run命令后,通过docker ps查看运行中的容器的时候,有可能你会发现,Jenkins容器没有启动成功,
你可以通过 docker logs 密码查看容器启动的日志信息,
docker logs 677
如果出现 permission denied
主要原因还是文件的write权限问题。可以参考网上的一篇文章: testerhome.com/topics/1193…
知道问题原因之后,我们给Jenkins用户赋予宿主机的 /opt/jenkins 目录的写权限即可:
sudo chown -R 1000:1000 /opt/jenkins
重启一下Jenkins容器(docker restart 容器ID)
docker start jenkins
docker ps
// 这时候可以看到
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
daf75fbec296 jenkins "/bin/tini -- /usr/l…" About a minute
ago Up 5 seconds 50000/tcp, 0.0.0.0:28080->8080/tcp jenkins
访问Jenkins服务 浏览器打开:
http://192.168.99.100:28080/
首次访问Jenkins的时候, Jenkins给你分配了一个密码,用于登录Jenkins系统。红色部分如下:
/var/jenkins_home/secrets/initialAdminPassword
密码默认存放的位置,
自己去把文件中的内容copy一下,然后在页面中输入密码即可。
【注意】:请进入 Jenkins 容器里面找到对应的密码文件,而不是在宿主机上。不要搞错了~
- 获取Jenkins登录密码
进入Jenkins容器的命令:
docker exec -it daf /bin/bash
其中的“daf”是Jenkins容器的ID。
docker ps // 查看 容器 id
docker@default:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
daf75fbec296 jenkins "/bin/tini -- /usr/l…" 18 minutes a
Up 16 minutes 50000/tcp, 0.0.0.0:28080->8080/tcp jenkins
docker@default:~$ docker exec -it daf /bin/bash
jenkins@daf75fbec296:/$ ls
bin dev etc lib media opt root sbin sys usr
boot docker-java-home home lib64 mnt proc run srv tmp var
jenkins@daf75fbec296:/$ cat /var/jenkins_home/secrets/initialAdminPassword
ce263b7052c049c189582a54094e9afc
- 进入容器之后,可以直接使用下面命令查看到密码,然后手动复制一下密码即可:
cat /var/jenkins_home/secrets/initialAdminPassword
登录Jenkins成功之后,首先会出现下面的页面:
Getting Started
Customize Jenkins
左边一个是:安装建议的软件。右边一个是:选择自己需要的软件安装。
这里我就选择左边的,默认安装软件就行。
输入相关账户的信息
- 1.汉化
安装插件locale plugin 管理语言
Locale Plugin
“系统管理”-> 系统设置
Locale
Default Language zh_CN
- 2.用户授权
“系统管理”->“Configure Global Security”->“授权策略”->“项目矩阵授权策略”
- 3.用户管理
“系统管理”->“管理用户”->“创建用户”