为 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 部署。
在 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 部署。