You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Web服务器子目录使用原生Rundeck Docker镜像及配置问询

在原生Rundeck Docker镜像中部署到Web服务器子目录

当然可以!你完全不用为了部署到子目录而维护自定义的Rundeck衍生镜像,原生Docker镜像本身就支持通过环境变量来配置上下文路径,结合Nginx的反向代理就能实现domain.com/rundeck的访问方式,具体步骤如下:

1. 配置原生Rundeck Docker容器的环境变量

Rundeck提供了专门的环境变量来设置应用的上下文路径和外部访问URL,只需要在启动容器时传入这些变量即可:

Docker Run 命令示例

docker run -d \
  -e RUNDECK_SERVER_CONTEXTPATH=/rundeck \
  -e RUNDECK_GRAILS_SERVERURL=https://your-domain.com/rundeck \
  -p 4440:4440 \
  rundeck/rundeck:latest

Docker Compose 示例

如果用Docker Compose,在docker-compose.yml中添加环境变量:

version: '3'
services:
  rundeck:
    image: rundeck/rundeck:latest
    environment:
      - RUNDECK_SERVER_CONTEXTPATH=/rundeck
      - RUNDECK_GRAILS_SERVERURL=https://your-domain.com/rundeck
    ports:
      - "4440:4440"
  • RUNDECK_SERVER_CONTEXTPATH=/rundeck:告诉Rundeck将自身部署在/rundeck路径下
  • RUNDECK_GRAILS_SERVERURL:设置Rundeck对外暴露的完整URL,确保生成的链接、回调地址都指向正确的子目录路径

2. 配置Nginx反向代理

接下来需要配置Nginx将/rundeck路径的请求转发到Rundeck容器,在Nginx的站点配置中添加如下location块:

server {
    listen 443 ssl;
    server_name your-domain.com;

    # SSL 配置(根据你的实际情况调整)
    ssl_certificate /path/to/your/cert.pem;
    ssl_certificate_key /path/to/your/key.pem;

    location /rundeck/ {
        proxy_pass http://localhost:4440/rundeck/;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Port $server_port;
        
        # 修正重定向路径,避免Rundeck跳转到根路径
        proxy_redirect http://localhost:4440/rundeck/ https://$host/rundeck/;
    }
}

注意:proxy_pass的末尾要加上/rundeck/,和上下文路径保持一致,否则会出现路径拼接错误。

3. 验证部署

启动Rundeck容器和Nginx服务后,访问https://your-domain.com/rundeck,如果能正常加载登录页面、静态资源(比如CSS、JS)都能正确加载,就说明配置成功了。

这种方式完全基于原生镜像,不需要额外维护自定义镜像,完美解决了你不想投入额外精力维护衍生镜像的问题。

内容的提问来源于stack exchange,提问作者smacz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:31:48