私は自分のミニサーバーを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行が完全な文字列ではなく正しく解釈されるようにするにはどうすればよいですか?私はこれがローカルでうまく動作するので、これはヒーロー問題だと思います。アドバイスは大歓迎です。
単純な画像をプッシュし、基本的なアルパイン画像上で異なるCMDをテストし、実際にそうであるかどうか確認してみてください –