2017-09-21 1 views
1

heroku에 내 minio 서버를 배포하려고합니다. 이것은 내 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 container plugin, login 등을 설치했다. 그런 다음 앱을 밀어 넣었다 : 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 부속 명령과 server/data 인수로서 함께하는) 예상대로 내 Dockerfile에서 CMD 라인을 해석 점이다 당신은 인용 부호를 알아 채고, heroku는 두 조각을 함께 부수고 전체 문자열을 minio 부속 명령으로 사용하려고 시도합니다. 따라서 오류 메시지. 그것은 명령을 실행하려고 대신 minio 'server /data'

Dockerfile 전에 heroku에서 이런 종류의 동작을 본 사람이 있습니까? CMD 라인이 하나의 전체 문자열이 아닌 올바르게 해석되는지 어떻게 확인할 수 있습니까? 나는 이것이 지역적으로 잘 돌아 가기 때문에 이것이 영웅 문제라고 생각한다. 모든 조언을 환영 할 것입니다.

+0

간단한 이미지를 푸시하고 기본 알파인 이미지에서 다른 CMD를 테스트 해보고 이것이 실제로 사실인지 확인해보십시오. –

답변

1

부모 레이어에 다른 ENTRYPOINTS가있는 것과 비슷한 문제가 발생했습니다. 이를 해결하기 위해 내 CMD 위에 ENTRYPOINT []을 추가했으며 모든 것이 잘 동작했습니다.