为 heroku container:release 自定义 运行 命令

Customize run command for heroku container:release

在 Heroku 上,我正在尝试按照此处所述发布推送的图像:

docker build --file Dockerfile.prod --tag registry.heroku.com/my-app/web .
heroku container:login
docker push registry.heroku.com/my-app/web
heroku container:release web

我的 heroku.yml 看起来像这样(当我从 GitHub 部署时使用并且工作正常):

build:
  docker:
    web: Dockerfile.prod
release:
  image: web
  command:
    - yarn typeorm migration:run && yarn console seed
run:
  web: yarn start:prod

似乎没有考虑run命令。当 运行 container:release 日志显示:

Starting process with command node

而在 GitHub 发布期间,我会看到正确的命令:

Starting process with command /bin/sh -c yarn start:prod

然而 release 命令被正确识别和执行。

如何确保 container:release 使用正确的命令运行容器?

我必须向我的 Dockerfile 添加 CMD

# ...

CMD yarn start:prod

这不会破坏 heroku.yml 的 GitHub 部署。