Jenkins | 笔记

引言

Docker

1
2
3
4
5
6
7
8
9
docker run \
-u root \
--rm \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean

--privileged : 使用该参数,container内的root拥有真正的root权限,

否则,container(容器)内的root只是外部的一个普通用户权限,

privileged启动的容器可以看到很多host上的设备,并且可以执行mount,

甚至允许你在docker容器内启动docker容器。

Docker Compose

docker-compose.yml

docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: '3'
services:
jenkins:
image: jenkinsci/blueocean
container_name: jenkins
environment:
- TZ=Asia/Shanghai
volumes:
- ./jenkins-data:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "8083:8080"
- "50000:50000"
privileged: true
user: root
restart: always

注意:

我这里是 8083:8080,因为有时候 宿主机8080 已被占用

注意:

./jenkins-data./ 表示当前目录,一定要有 ./,不然会认为 jenkins-data 是一个挂载点

启动

1
docker-compose up -d

查看密码并登录

1
docker logs -f jenkins

补充:

或者查看密码

1
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword

Q&A

Q: 使用宝塔面板 配置网站的 nginx

Nginx 代理 8083后,页面可以访问,但是页面引用 (/static) 的前端css等文件 404,必须带上端口号 8083才能正常访问页面,

A:

注释掉

补充

Nginx

nginx.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
server {

listen 80;
listen 443 ssl http2;
server_name jenkins.moeci.com;
root /www/wwwroot/jenkins.moeci.com;

# proxy to 8083
location / {
proxy_pass http://localhost:8083;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
# cache
add_header Cache-Control no-cache;
expires 12h;
}

}

参考

感谢帮助!