2017-09-21 13 views
1

私は自分のミニサーバーをherokuに配備しようとしています。これは私のDockerfileです:私が構築し、ドッキングウィンドウを通してそれを実行したときにHeroku:Dockerfile CMDに失敗したminioサーバーを展開する

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

これは、これらのコマンドを使用して(ローカルに動作します:)

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

Dockerfileは、ディレクトリ内のファイルのみです。

次に、私はそれを英雄に押し込もうとします。私はheroku docker instruction pageのコマンドに従ってherokuコンテナプラグインやログインなどをインストールしました。その後、私のアプリをプッシュしました:heroku container:push web --app APP_NAME

私はアプリにアクセスするとブラウザにアプリケーションエラーが発生します。 minio、‘server /data’ is not a minio sub-command. See ‘minio --help’.のいくつかの説明をよく知らない人のために

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 

:これはHerokuのは、ディスプレイをログに記録するものであるあなたがminioコマンドではない引数でminioコマンドを実行すると、これが表示されます。例えば、

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

は、だから何Herokuのは、私に言っていることは、それはないそれが必要(minioサブコマンドとその引数として/dataとしてserverである)が、代わりに、あるかのように、私のDockerfileからCMDラインを解釈するということですあなたは引用符に気づき、herokuは2つの部分を一緒に壊して、全体の文字列をminioサブコマンドとして使用しようとしています。つまりエラーメッセージです。コマンドを実行しようとしていますminio server /dataの代わりに

Dockerfileでherokuからこの種の動作を見た人はいますか? CMD行が完全な文字列ではなく正しく解釈されるようにするにはどうすればよいですか?私はこれがローカルでうまく動作するので、これはヒーロー問題だと思います。アドバイスは大歓迎です。

+0

単純な画像をプッシュし、基本的なアルパイン画像上で異なるCMDをテストし、実際にそうであるかどうか確認してみてください –

答えて

1

親のレイヤーに他のENTRYPOINTSがあることが原因と思われる同様の問題がありました。これを解決するために、私はCMDの上にENTRYPOINT []を追加し、すべてうまくいきました。

関連する問題