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容器所需的文件系统结构及其内容,因此是启动一个Docker容器的基础。镜像的结构原理图大致分为四层:共享的内核层、基础镜像层、定制镜像层、可写容器层。 共享的内核层 :每个Docker容器运行时都共享宿主

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

    如何使用 Docker 搭建 Jenkins 环境?从安装到精通

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

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

    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日
    浏览(9)
  • 基于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日
    浏览(11)
  • docker搭建的jenkins,jmeter和ant环境变量环配置

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

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

    基于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日
    浏览(65)
  • 【Docker】centos中及自定义镜像,并且上传阿里云仓库可提供使用

    【Docker】centos中及自定义镜像,并且上传阿里云仓库可提供使用

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

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

    Linux系统jenkins+newman+postman持续集成环境搭建

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

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

    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日
    浏览(16)
  • 一键搞定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日
    浏览(16)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包