linux环境下docker中搭建 jenkins 及自定义访问路径,利用nginx反向代理

这篇具有很好参考价值的文章主要介绍了linux环境下docker中搭建 jenkins 及自定义访问路径,利用nginx反向代理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

前两天发布了完整的 linux服务器上Docker中安装jenkins
在实际的开发中,可能我们并不能直接开放8081或者8080端口给jenkins使用,常常是通过nginx方向代理来实现的,这里我们来配置一下。

jenkins nginx,nginx,操作系统,docker,jenkins,docker,linux


1 linux服务器上Docker中安装jenkins

如果你还没有安装 可以参考我这篇文章 linux服务器上Docker中安装jenkins
看到目录: 创建一个jenkins目录 就可以回来继续看如何自定义访问路径和nginx反向代理了。

2 请求路径

我们以下面这个请求的域名举例子

https://app.域名.com/jenkins/

也就是请求进来之后,/jenkins
这个/jenkins 可以根据需要自行配置
nginx转发的时候会带上这个统一的前缀/jenkins

两种解决思路:

修改nginx

查一下如何配置nginx自动去除调这个统一前缀/jenkins

给jenkins项目配置统一的请求前缀 (推荐)

-e JENKINS_OPTS=“–prefix=/jenkins”

启动jenkins容器的时候,加上上面的参数,-e 为启动的时候的必要环境变量

》 - - prefix= /jenkins 为统一的访问前缀前缀。

3 删除原来的容器

如果原来有 则需要删除,没有则不需要删除

docker ps -a
docker rm -f 容器id

g6grfnalpZ:/data/jenkins_home# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS                          PORTS                                                                                                                                                                                                                                                             NAMES
0f9ea3076687   jenkins/jenkins:lts   "/usr/bin/tini -- /u…"   4 minutes ago   Restarting (1) 18 seconds ago                                                                                                                                                                                                                                                                     jxj_jenkins
0fdbf676ad87   emqx/emqx:latest      "/usr/bin/docker-ent…"   5 months ago    Up 2 weeks                      4369-4370/tcp, 5369/tcp, 6369-6370/tcp, 0.0.0.0:1883->1883/tcp, :::1883->1883/tcp, 0.0.0.0:8083-8084->8083-8084/tcp, :::8083-8084->8083-8084/tcp, 8081/tcp, 0.0.0.0:8883->8883/tcp, :::8883->8883/tcp, 0.0.0.0:18083->18083/tcp, :::18083->18083/tcp, 11883/tcp   emqx
bb3e68e10a26   mysql:latest          "docker-entrypoint.s…"   7 months ago    Up 2 weeks                      0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   

grfnalpZ:/data/jenkins_home# docker rm -f 0f9ea3076687
0f9ea3076687

4 创建挂载目录

mkdir /data/jenkins_home
chown -R 1000:1000 /data/jenkins_home

如果原来没有启动容器挂载过

docker run -d --name jenkins -p 8899:8080 --restart=always -e TZ=“Asia/Shanghai” -e JENKINS_OPTS=“- -prefix=/jenkins” -e JENKINS_ARGS=“- -prefix=/jenkins” -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins:lts;

如果已经挂载过了
两个思路

修改已经挂载的目录

提供一篇较好的博客(不是我写的,感觉挺详细的)
docker对已经启动的容器添加目录映射(挂载目录)

删除容器

docker ps
docker kill 容器id
docker rm -f 容器id

启动容器

docker run -d --name jxj_jenkins -p 8899:8080 --restart=always -e TZ=“Asia/Shanghai” -e JENKINS_OPTS=“- -prefix=/jenkins” -e JENKINS_ARGS=“- -prefix=/jenkins” -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins:lts;

注意 - -prefix=/jenkins 是两个横杠中间一个空格,我复制过来就变成了一条线无奈再中间又加了一个空格,不知道会不会影响

参数解析:


-d           后台运行容器,并返回容器ID--name       为容器起一个容易区分且容易书写的名字
-p           映射宿主机端口到容器端口,宿主机端口:容器端口
--restart=always  机器重启时自动启动容器
-e       设定一些必须的环境变量。
          -e TZ="Asia/Shanghai" 设定时区为上海,强烈建议国内设定,否则容器内打印的所有日志时间都会差8小时。
          -e JENKINS_OPTS="--prefix=/jenkins" -e JENKINS_ARGS="--prefix=/jenkins" 重点!!!设定jenkins访问的路径,非必选,如果是直接根目录或ip地址访问,则不需要添加,如果是想nginx反向代理且不在根目录下,则必须,否则只配置nginx会报静态文件404错误,此处名字应与文件夹名称一致。
-v       挂载宿主机文件到容器。本例两个分别为:
          -v /etc/localtime:/etc/localtime:ro 挂载宿主机时间,保持容器时间正确。
          -v /data/jenkins_home:/var/jenkins_home  绑定挂载文件
          

5 nginx配置

前提是已经安装好了nginx,如果没有安装,这里可能需要暂停一下安装好再过来。

cd /
find -name nginx.conf
vim nginx.conf路径

添加配置

          location ~ (^/jenkins).* {
                 proxy_pass   http://127.0.0.1:8899;
                #proxy_set_header Host                $host:$server_port;
              }

完整nginx.conf配置


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;    


#gzip  on;

    server {
        listen       80;
        server_name  localhost 39.107.79.167 whx.ink;        
#charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

          location ~ (^/jenkins).* {
                 proxy_pass   http://127.0.0.1:8899;
                #proxy_set_header Host                $host:$server_port;
              }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

完成

jenkins nginx,nginx,操作系统,docker,jenkins,docker,linux
jenkins nginx,nginx,操作系统,docker,jenkins,docker,linux文章来源地址https://www.toymoban.com/news/detail-603316.html

到了这里,关于linux环境下docker中搭建 jenkins 及自定义访问路径,利用nginx反向代理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Docker】Docker镜像结构及自定义镜像,镜像上传仓库使用

            Docker镜像是一个只读的Docker容器模板,含有启动Docker容器所需的文件系统结构及其内容,因此是启动一个Docker容器的基础。镜像的结构原理图大致分为四层:共享的内核层、基础镜像层、定制镜像层、可写容器层。 共享的内核层 :每个Docker容器运行时都共享宿主

    2024年02月01日
    浏览(47)
  • 如何使用 Docker 搭建 Jenkins 环境?从安装到精通

    不少兄弟搭 jenkins 环境有问题,有的同学用 window, 有的同学用 mac, 有的同学用 linux。 还有的同学公司用 window, 家里用 mac,搭个环境头发掉了一地。。。 这回我们用 docker 去搭建 jenkins 环境,不管你是用的是什么系统,jenkins 搭建起来都是一样的步骤。 而且使用 Docker 以后,

    2024年02月08日
    浏览(49)
  • Linux环境搭建Jenkins(详细图文)

    目录 简介Jenkins 特点 一、环境准备 1.jdk环境准备 2.maven环境准备 3.git环境准备  二、安装部署Jenkins(采用war包方式) 1.下载Jenkins ​2.启动war包 1)将下载好的Jenkins的war包上传到服务器上 2)编辑启动脚本,方便 3)启动Jenkins的war 3.浏览器访问 4.插件安装  5.创建管理员账号 6

    2024年02月21日
    浏览(38)
  • 基于Docker+Jenkins+Gitl搭建持续集成环境(部分关键笔记)

    Jenkins 访问地址: ip地址:10000 查看密码 问题 jenkins升级问题 jenkins时区设置问题 配置插件更新代理 安装WebHooks并启用 配置Jenkins参数 解决jenkins安装插件报错: An error occurred during installation: No such plugin: cloudbees-folder Index of /jenkins/plugins/skip-certificate-check/latest/ | 清华大学开源软件

    2024年02月10日
    浏览(44)
  • docker搭建的jenkins,jmeter和ant环境变量环配置

    参考文章 docker-jenkins+ant+jmeter持续集成_docker中部署jmeter+ant+jenkins-CSDN博客

    2024年02月07日
    浏览(42)
  • 基于docker搭建pytest自动化测试环境(docker+pytest+jenkins+allure)

    这里我以ubuntu18为例 如果有docker环境,可以直接拉取我打包好的镜像 docker pull ziyigun/jenkins:v1.0 1.1 安装docker 1.2 配置镜像加速 bug1:ExecStart=/usr/bin/dockerd -H fd:// 如果发现docker启动或者重启报错: ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILU

    2024年02月12日
    浏览(59)
  • 【Docker】centos中及自定义镜像,并且上传阿里云仓库可提供使用

                                      🎉🎉欢迎来到我的CSDN主页!🎉🎉                         🏅我是平顶山大师,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《 【Docker】centos中及自定义镜像,并且上传阿里云仓库可提供使用

    2024年02月01日
    浏览(53)
  • Linux系统jenkins+newman+postman持续集成环境搭建

    1、首先安装nodejs 下载nodejs压缩包,下载地址:nodejs官网下载 建议不用下载最新的,我这里用的是推荐的v12.18版本 下载和解压命令 解压安装包(记得没有z) 配置环境变量,vim /etc/profile (NODE_HOME为nodejs的解压路径) 然后执行 检查是否安装成功 2、安装newman和html插件 可用newm

    2024年02月14日
    浏览(49)
  • linux系统从零开始搭建CICD jenkins环境

    本文教你从零开始搭建jenkins环境,开始你的CICD之旅。 1.1 系统与安装环境 本文的环境为云服务器环境,系统为linux Red-hat系统。版本信息如下: Linux version 3.10.0-1160.88.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP 如果是linux其它系统,也

    2024年02月04日
    浏览(55)
  • 一键搞定centos7的docker+selenium+appium+jenkins+android_app源码打包成apk的环境搭建

    git源码: https://github.com/a376230095/centos7_apkbuild/tree/master 简介 启动项目的start_all.sh,一键构建环境 安装完包含的环境 docker-ce最新版本 selenium运行环境 chrome无头运行 chromedriver是84 appium运行环境 appium 1.18版本 包含appium-docker sdk运行环境 adb 1.0.41 sdk build有29.0.3和28.0.3 - sdk编译环境

    2023年04月08日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包