docker搭建jenkins工程访问路径遇到的坑


当我们在用docker-compose创建jenkins镜像的后,默认访问端口是8080,而且是不带工程名称的,当我们用nginx进行代理的时候就会遇到问题。
比如我们想让nginx实现这样的访问http://192.169.0.1/jenkins,这样是不行的。下面我贴出我的配置来解决这个问题:

version: '3'
services:
  jenkins:
      build:
        context: ./
        dockerfile: ./Dockerfile
      image: my-jenkins:version_2.0
      container_name: jenkins
      restart: always
      user: root
      ports:
           - '8080:8080'
      command: ["--httpPort=8080","--prefix=/jenkins"]
      volumes:
           - './common/jenkins_home:/var/jenkins_home'
           - './common/package:/usr/local/package'
           - './common/maven/repo:/opt/maven/repo'
           - '/var/run/docker.sock:/var/run/docker.sock'
           - '/home/docker/lib:/usr/bin/docker'
           - '/bin/docker:/bin/docker'

我们可以看到下面这段关键的配置

command: ["--httpPort=8080","--prefix=/jenkins"]

这句代码为jenkins设置了端口(也可以设置我们自定义的端口),并设置了访问工程名称
想深入研究的朋友们,可以进入容器里面,看看/usr/local/bin/jenkins.sh这个脚本,执行启动是允许传入参数的

另外nginx的配置我就不贴了。。。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐