【问题标题】:Customize run command for heroku container:release自定义heroku容器的运行命令:release
【发布时间】:2021-06-09 03:53:05
【问题描述】:

在 Heroku 上,我正在尝试发布一个推送的图像,如下所述:https://stackoverflow.com/a/50788844/2771889

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 时,日志显示:

使用命令node启动进程

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

使用命令/bin/sh -c yarn start:prod启动进程

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

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

【问题讨论】:

  • 随机想.. 你有没有尝试在运行命令中添加“image: web”?
  • 在哪里?我正在运行heroku container:release web,它可以识别正确的图像(并且还运行发布命令)。
  • 尝试将其添加到您的运行部分。在release 部分中有一行image: web。尝试将该行也复制到run 部分。它不知道在哪里运行命令。

标签: javascript docker heroku


【解决方案1】:

我必须在我的 Dockerfile 中添加一个 CMD

# ...

CMD yarn start:prod

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

【讨论】:

    猜你喜欢
    • 2020-12-20
    • 1970-01-01
    • 2011-11-24
    • 2013-10-05
    • 2019-09-30
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多