Heroku:使用Dockerfile CMD故障部署Minio服务器



我正在尝试将我的Minio服务器部署到Heroku。这是我的Dockerfile:

FROM minio/minio
ENV MINIO_ACCESS_KEY="xxxxxx"
ENV MINIO_SECRET_KEY="xxxxxxxx"
CMD ["server", "/data"]
EXPOSE 9000

此在本地起作用当我通过docker构建并运行它(使用以下命令:)

docker build . -t testheroku
sudo docker run -p 8080:8080 testheroku

dockerfile是目录中唯一的文件。

然后,我试图将其推向Heroku。我遵循Heroku Docker指令页面上的命令,以安装Heroku容器插件,登录等。然后,我用:heroku container:push web --app APP_NAME

推了我的应用

访问该应用程序时,我会在浏览器中出现应用程序错误。这就是Heroku日志显示的内容:

2017-09-21T02:24:47.589576+00:00 app[api]: Deployed web (26b84915ed48) by user []
2017-09-21T02:24:47.589576+00:00 app[api]: Release v28 created by user []
2017-09-21T02:24:48.241050+00:00 heroku[web.1]: State changed from crashed to starting
2017-09-21T02:24:49.480733+00:00 heroku[web.1]: Starting process with command `server /data`
2017-09-21T02:24:51.961825+00:00 app[web.1]: ‘server /data’ is not a minio sub-command. See ‘minio --help’.
2017-09-21T02:24:52.056706+00:00 heroku[web.1]: Process exited with status 1
2017-09-21T02:24:52.064400+00:00 heroku[web.1]: State changed from starting to crashed
2017-09-21T02:24:52.938136+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=APP_NAME.herokuapp.com request_id=80ddd6f8-c053-4ff6-b4c9-fdb0ce8a48a5 fwd="67.245.14.153" dyno= connect= service= status=503 bytes= protocol=https
2017-09-21T02:24:54.319660+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=APP_NAME.herokuapp.com request_id=9988b6af-8a91-4e77-9bd4-c79c9e2ec24c fwd="67.245.14.153" dyno= connect= service= status=503 bytes= protocol=https

对于那些不熟悉Minio的人,‘server /data’ is not a minio sub-command. See ‘minio --help’.的一些解释:这显示了您在使用不是Minio命令的参数运行Minio命令时。例如,

./minio sadf
‘sadf’ is not a minio sub-command. See ‘minio --help’.

heroku告诉我的是,它正在解释我的dockerfile的CMD线,而不是应有的(这是server作为Minio Sub -Command and /data作为参数)正在将两个部分粉碎在一起,并试图将整个字符串用作Minio子命令 - 因此错误消息。它正在尝试运行命令minio 'server /data'而不是minio server /data

以前有没有人看到过heroku的这种行为?如何确保CMD线得到正确解释,而不是一个完整的字符串?我认为这是一个Heroku问题,因为它在本地运行良好。任何的建议都受欢迎。

我也有一个类似的问题,这似乎是由父层中的其他入口点引起的。为了解决这个问题,我在CMD上方添加了ENTRYPOINT [],一切正常。

实际上,我也遇到了同样的问题。此Dockerfile正常工作。

FROM minio/minio:RELEASE.2022-01-08T03-11-54Z.fips
ENV MINIO_ROOT_USER=XXXXXX
ENV MINIO_ROOT_PASSWORD=XXXXXX
EXPOSE 9000
EXPOSE 9001
ENTRYPOINT ["minio"]
CMD ["server","/data","--console-address",":9001"]

最新更新