jenkins与docker的简单使用

一、pull jenkins 镜像#

jenkins 镜像可以在docker厂库里面找到,选择靠谱的官方docker镜像,然后pull下来,为后面做准备.docker pull jenkins ,emmmmm好像这个镜像有点大,在国内的用户还是老老实实的用阿里的加速吧.不然下到绝望呀.

二、运行jenkins#

镜像下载后,后面就简单了.只需要一条命令就可以让jenkins跑起来.docker run -d --name myjenkins -p 8080:8080 -p 50000:50000 -v /root/jenkins:/var/jenkins_home -u root jenkins

解释一下这条命令的含义.

  • -d的意思的后台运行
  • —name的意思给这个jenkins起个名称
  • -p的意思进行端口映射,把容器内部的8080端口和50000端口映射到宿主机上面去.
  • -v的意思是把容器的/var/jenkins_home目录映射到宿主机的/root/jenkins目录中去
  • -u的意思是以root的身份运行这个容器,避免遇到没有权限的问题

运行起来后就可以访问jenkins主页了,第一次访问jenkins的时候需要输入一个jenkins生产的临时密码.这个密码可以用docker logs myjenkins命令来查看容器运行的日志.

images

ok.

三、配置nginx#

如果需要方向代理的话,会有点麻烦.但是也有现场的配置抄.嘿嘿.注意的一点是,如果要配置域名的话,需要在jenkins中的系统配置里面修改jenkins URL 为域名.

下面的配置文件是配置http的.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
server {
listen 80;
server_name jenkins.domain.tld;
return 301 https://$host$request_uri;
}

server {

listen 80;
server_name jenkins.domain.tld;

location / {

proxy_set_header Host $host:$server_port;
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;

# Fix the "It appears that your reverse proxy set up is broken" error.
proxy_pass http://127.0.0.1:8080;
proxy_read_timeout 90;

proxy_redirect http://127.0.0.1:8080 https://jenkins.domain.tld;

# Required for new HTTP-based CLI
proxy_http_version 1.1;
proxy_request_buffering off;
# workaround for https://issues.jenkins-ci.org/browse/JENKINS-45651
add_header 'X-SSH-Endpoint' 'jenkins.domain.tld:50022' always;

}
}

在贴一段https的ng配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
upstream jenkins {
server 127.0.0.1:8080 fail_timeout=0;
}

server {
listen 80;
server_name jenkins.domain.tld;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl;
server_name jenkins.domain.tld;

ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;

location / {
proxy_set_header Host $host:$server_port;
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_redirect http:// https://;
proxy_pass http://jenkins;
# Required for new HTTP-based CLI
proxy_http_version 1.1;
proxy_request_buffering off;
proxy_buffering off; # Required for HTTP-based CLI to work over SSL
# workaround for https://issues.jenkins-ci.org/browse/JENKINS-45651
add_header 'X-SSH-Endpoint' 'jenkins.domain.tld:50022' always;
}
}

只要对应的修改一下就ok了.

四、总结#

配置nginx这个可算是把我给坑到了,因为我这个nginx前面还有个cdn,cdn能够过于掉一些无效的请求头,但jenkins又自定义了请求头.刚开始还不知道,捣腾了很久才发现,可谓是个坑了.

感谢您的阅读,本文由 Onew 版权所有。如若转载,请注明出处:Onew(https://onew.me/2018/04/26/jenkins-docker/
关于JFinal与kisso集成使用心得
centos安装docker