【问题标题】:Docker image crashing under herokuDocker镜像在heroku下崩溃
【发布时间】:2021-03-14 17:52:55
【问题描述】:

我最近发布了一个开源 SSHFP 测试工具作为 Dockerized 容器 (https://github.com/dbsentry/sshfp)。该工具适用于 docker 和 podman。我还设置了一个 github 操作来构建一个 docker 容器,并在每次将任何文件提交到存储库时将其推送到 docker hub。

该工具基本上是后端的烧瓶 API 和前端的 Vue 应用程序。 REST API 使用 gunicorn 运行,Vue 使用 nginx 提供服务。

对于演示,我使用的是 Heroku。但是,每次我都使用以下命令将容器推送并释放到 Heroku:

[manish@getafix2 bin]$ docker tag dbsentry/sshfp registry.heroku.com/sshfp/web
[manish@getafix2 bin]$ docker push registry.heroku.com/sshfp/web
The push refers to repository [registry.heroku.com/sshfp/web]
fa59c99d6036: Layer already exists 
ace0eda3e3be: Layer already exists 
latest: digest: sha256:824a5303c9b6a3e9b3f1bc1df19a9833f150c2a563d57abcf27e0b800083f6ad size: 740
[manish@getafix2 bin]$ ./heroku container:release web -a sshfp
Releasing images web to sshfp... done
[manish@getafix2 bin]$ 

但是,每次我这样做时,都会导致崩溃并显示以下消息:

2020-12-02T17:38:04.365087+00:00 app[api]: Deployed web (9b27af0ae5e8) by user manish@dbsentry.com
2020-12-02T17:38:04.365087+00:00 app[api]: Release v21 created by user manish@dbsentry.com
2020-12-02T17:38:05.138252+00:00 heroku[web.1]: State changed from crashed to starting
2020-12-02T17:38:07.656483+00:00 heroku[web.1]: Starting process with command `/container/tools/run`
2020-12-02T17:38:10.642322+00:00 app[web.1]: *** CONTAINER_LOG_LEVEL = 3 (info)
2020-12-02T17:38:10.645157+00:00 app[web.1]: *** In finally
2020-12-02T17:38:10.645343+00:00 app[web.1]: *** Killing all processes...
2020-12-02T17:38:10.726301+00:00 heroku[web.1]: Process exited with status 0
2020-12-02T17:38:10.780523+00:00 heroku[web.1]: State changed from starting to crashed

起初,我认为这可能是因为 Heroku 不允许您对端口进行硬编码。因此,我更改了 nginx 配置并根据 PORT 环境变量设置了 nginx 配置。

我尝试跟踪 run 脚本的执行,但无法这样做。

任何帮助在 Heroku 中运行的帮助将不胜感激。

【问题讨论】:

    标签: python docker heroku


    【解决方案1】:

    因此,事实证明 Heroku 期望非 root 用户运行容器内的所有进程。我的工具假设一个 root 用户,它启动 runit,然后为每个进程更改用户(就像典型的 linux 系统一样)。因此,我需要为 Docker 映像重新设计工具,以便它也可以作为非 root 用户运行。

    【讨论】:

      猜你喜欢
      • 2016-12-12
      • 1970-01-01
      • 2021-01-15
      • 2020-09-09
      • 1970-01-01
      • 2020-05-26
      • 1970-01-01
      • 2019-05-21
      相关资源
      最近更新 更多