Docker安装Jenkins
- 首先拉取jenkins镜像,官方推荐含有BlueOcean插件的版本;
- 创建一个文件夹,保存jenkins的配置文件和变量文件;
- 将该文件夹的属组修改到ID为1000的,防止出现权限问题;
- docker run指令解析:
- -e设置一些系统环境,其中“--prefix=jenkins”主要为了后面用nginx反向代理的时候,可以直接配置;
TZ设置时区为上海;
- -v 数据卷映射
# docker pull jenkinsci/blueocean
# mkdir -p /home/jenkins/data
# chown -R 1000:1000 /home/jenkins/data
# docker run -u root -d \
--name jenkins \
-p 8080:8080 -p 50000:50000 \
--restart=always \
-v /home/jenkins/data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-e TZ="Asia/Shanghai" \
-e JENKINS_OPTS="--prefix=/jenkins" \
jenkinsci/blueocean
Nginx反向代理Jenkins
- docker拉取nginx镜像;
- 新建文件和文件夹,分别对应Nginx默认配置文件、默认配置文件夹以及log文件夹;
- 运行docker run
# docker pull nginx
# mkdir -p /home/nginx/{config,log}
# cp /root/nginx.conf /home/nginx/config/nginx.conf ----将准备好的nginx默认配置文件拷贝进路径
# docker run -d \
--name nginx \
--restart=always \
-p 80:80 \
-v /home/nginx/config/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/config/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/static:/usr/share/nginx/html \
nginx:latest
# vim /home/nginx/config/conf.d/jenkins.conf
- 配置文件编写:
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /jenkins/ {
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# rewrite ^/jenkins/(.*) http://localhost:8080$1 break;
}
location /gitlab/ {
proxy_pass http://localhost:8880;
# rewrite ^/gitlab/(.*) http://localhost:8880$1 break;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}