在服务器CentOS 用docker 布署一个Jenkins 做自动化布署

docker pull jenkins/jenkins:lts
#拉取最新的docker

执行 docker images 发现不少none的镜像,删除一下。

docker rmi $(docker images | grep "none" | awk '{print $3}')

挂载一个宿主机的目录,先新建一个

mkdir /data/jenkins_home;
docker run -d --name jenkins -p 8080:8080 -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins:lts;
备注:
-d //启动在后台
--name //容器名字
-p //端口映射(8081:宿主主机端口,8080:容器内部端口)
-v //数据卷挂载映射(/data/jenkins_home:宿主主机目录,另外一个即是容器目录)

更改挂载的目录权限,否则会启动不了容器

chown -R 1000:1000 /data/jenkins_home

现在可以用IP:8080可以访问了,当然前提是把宿主机的8080端口暴露出来,因为宿主机安装了nginx 配一下域名转发,找到nginx 配置的conf /vhost添加文件,然后重启

server
    {
        listen 80;
        #listen [::]:80;
        server_name xxx.com ;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /data/jenkins_home;

        
         location / {
               proxy_pass http://127.0.0.1:8080;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                 proxy_set_header Connection "upgrade";
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $host;

        }

      
       access_log off;
    }

 

 

 

重启nginx ,打开域名,打开网页,按图索骥完成余下的安装

 

 

 

安装后还发现一个问题,因为是测试服务器使用,需要操作服务器里相应同步文件和shell命令,而jenkins在容器里,后来能过安装ssh agent的插件,并配置了主从节点,把宿主机作为从节点来布署运行,这样解决问题了

 

安装了推荐插件后

又安装了Blue Ocean 用来做多分支流水线

Multibranch Scan Webhook Trigger 用来做webhook

Related Posts