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

如何在Heroku上运行带环境变量参数的Docker镜像

Heroku 运行 Docker Hub 镜像并传入启动参数、环境变量的方法

Heroku 没有直接提供类似 docker run 后跟自定义参数的部署命令,你可以通过以下两种方案实现需求:

方案1:修改镜像启动入口(适配性最高)

  • 本地拉取目标镜像后,新建一个 Dockerfile 基于原镜像修改启动逻辑,示例如下:
# 替换为你实际使用的镜像名
FROM user/image
# 新增自定义启动脚本
RUN <<EOF
#!/bin/sh
echo '#!/bin/sh' > /app/start.sh
# 这里写你需要的启动命令,原入口路径可以通过 docker inspect 原镜像查询 Entrypoint 字段得到
echo 'exec /usr/bin/原镜像默认入口程序 -someoption $SOME_ENV_VAR' >> /app/start.sh
chmod +x /app/start.sh
EOF
ENTRYPOINT ["/app/start.sh"]
  • 构建镜像后推送到 Heroku 容器 Registry 完成部署即可。需要修改环境变量时直接通过 Heroku CLI 操作:
# 替换为你的应用名和对应变量值
heroku config:set SOME_ENV_VAR=xxx -a your-app-name

所有通过 heroku config 设置的变量会自动注入容器运行环境,直接在启动命令中通过 $变量名 调用即可。

方案2:通过 Procfile 覆盖启动命令(无需修改镜像)

如果不想改动原镜像,可以在部署目录下新建 Procfile 文件,直接指定完整启动命令,Heroku 会自动用该命令覆盖镜像默认的 Entrypoint:

#  web 对应 web 进程类型,如果是后台任务可替换为 worker
web: /usr/bin/原镜像默认入口程序 -someoption $SOME_ENV_VAR

部署前先将应用栈设置为容器模式:

heroku stack:set container -a your-app-name

再正常推送代码部署即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:09:03