具有路径匹配规则的traefik反向代理后面的Jenkins Docker容器

具有路径匹配规则的traefik反向代理后面的Jenkins Docker容器,docker,jenkins,traefik,Docker,Jenkins,Traefik,我有一个Docker容器运行类似于: 然后我用Jenkins运行另一个容器,该容器通过标签配置转发规则,以便traefik将所有路径以/Jenkins开头的请求转发给它: docker run \ -d \ --name jenkins \ --label "traefik.port=8080" \ --label "traefik.frontend.rule=PathPrefix: /jenkins" \ jenkins/jenkins:lts 现在,打开http://l

我有一个Docker容器运行类似于:

然后我用Jenkins运行另一个容器,该容器通过标签配置转发规则,以便
traefik
将所有路径以
/Jenkins
开头的请求转发给它:

docker run \
  -d \
  --name jenkins \
  --label "traefik.port=8080" \
  --label "traefik.frontend.rule=PathPrefix: /jenkins" \
  jenkins/jenkins:lts
现在,打开
http://localhost/jenkins
,请求被正确地转发到Jenkins容器,该容器将我重定向到主
index.html
页面。但是,页面大部分是空白的,因为JavaScript和CSS资产没有正确加载

查看浏览器控制台,我可以看到索引页正试图从
http://localhost/static/4e9c623d/scripts/yui/button/button-min.js
此设置中不存在的。相反,它应该在URL中包含
/jenkins/
部分,并尝试从
http://localhost/jenkins/static/4e9c623d/scripts/yui/button/button-min.js
相反-手动点击该URL会在浏览器中显示JS文件

我尝试使用类似于
--label“traefik.frontend.rule=PathPrefix:/jenkins;AddPrefix:/jenkins/”
的规则组合,但这并没有改变任何东西


如何编写规则使其正常工作?

运行JENKINS容器时,需要将自定义路径添加到环境变量,例如
-e JENKINS_OPTS=“--prefix=/JENKINS”

docker run \
  -d \
  --name jenkins \
  --label "traefik.port=8080" \
  --label "traefik.frontend.rule=PathPrefix: /jenkins" \
  jenkins/jenkins:lts