2017-10-27 3 views
1

をHerokuにデプロイしようとしましたが、私のDockerfileを作成する際に問題があります。ヘロクコンテナレジストリのJenkinsでDockerイメージを展開する

私がHeroku Container Registry上のDocker Imageをheroku container:push webでプッシュすると、エラーYour Docker image must specify a 'CMD' instructionが表示されます。

しかし、ヘロクのコンテナの中でジェンキンスを実行するためにはどのようなコマンドを書く必要がありますか?

ありがとうございます!

答えて

0

エラーは、DockerfileにあるCMDスタンザがないことを示しています。

しかし、あなたは(あなたがDockerfileに提供されたリンクに反映されるように)jenkins画像のアップストリームバージョンから何かを変更する予定がない場合は、独自のドッキングウィンドウの画像とDockerfileを作成する必要はありません。

あなただけdocker pull jenkins/jenkins:ltsローカルその後、docker tag jenkins/jenkins:lts registry.heroku.com/<app>/<process-type>を使用してタグ付けし、その後docker push registry.heroku.com/<app>/<process-type>

あなたは、このトピックについてHeroku's official documentationの詳細を読むことができ、新たなタグを使用して、Herokuのにそれをプッシュすることができます。

EDIT:あなたはカスタムが必要です場合

あなたがあなた自身のDockerfileを作成することになりますし、あなたがこのような何かを行う必要があります(OPのニーズのような)追加のジェンキンスのプラグインをインストールするには、例えばドッキングウィンドウのイメージをジェンキンス:

FROM jenkins/jenkins:lts 
RUN /usr/local/bin/install-plugins.sh gitlab-plugin publish-over-dropbox 
CMD ["--debug=5"] 

我々はちょうどDockerfileCMDスタンザを必要とheroku container:pushチェックを通過するCMDスタンザを追加している、通常の環境でそれを必要はありませんが、--debug=5jenkins.shによって検出されましたスクリプトを実行してjenkins.warプログラムに送信すると、デバッグレベルが5に設定されます(指定されていない場合はデフォルトレベル)。

EDIT#2:

HerokuのはENTRYPOINTのために複数の命令を受け付けませんので、あなたが通常のDockerfileシナリオからさらに逸脱しなければならないし、それがHerokuのに対応していないため[]に設定することでENTRYPOINT上流のスタンザをキャンセルその後、CMDスタンザ内のすべて置く:

FROM jenkins/jenkins:lts 
RUN /usr/local/bin/install-plugins.sh gitlab-plugin publish-over-dropbox 
ENV JAVA_OPTS -Xms256m -Xmx512m 
ENTRYPOINT [] 
CMD /bin/tini -s -- /usr/local/bin/jenkins.sh --httpPort=$PORT 

を私は必要に応じて調整し、ジェンキンスとJavaはメモリ消費するアプリケーションであるため、自由層ダイノとクーペするJAVA_OPTSを追加しました。

-sフラグがtiniに追加されました。PID 1がなくなったため、hereに追加されました。

私は--httpPort=$PORTフラグをjenkins.warに送信しました。これにより、herokuがアプリの適切な$PORTを入力できるようになりました。Herokuのドキュメントから

注:

ENTRYPOINT is optional. If not set, /bin/sh -c will be used

+0

おかげであなたの答えのためにたくさん! –

+0

私の 'Dockerfile'のコメント行にあるように、Jenkinsにいくつかのプラグインをインストールしたいのですか? –

+0

@ S.Raman私はあなたのユースケースをカバーするための応答を編集しました。 – Nicolae

0

は今、私はHerokuの上jenkinsci /ドッキングウィンドウを展開しようとしているとき、別の問題があります。

2017-10-27T15:53:37.569477+00:00 heroku[web.1]: State changed from crashed to starting

2017-10-27T15:53:35.856897+00:00 app[api]: Deployed web (dce6a8335a9a) by user [email protected]

2017-10-27T15:53:35.856897+00:00 app[api]: Release v7 created by user [email protected]

2017-10-27T15:53:53.949433+00:00 heroku[web.1]: Starting process with command '--debug\=5'

2017-10-27T15:53:56.142034+00:00 app[web.1]: Error: No such file or directory

2017-10-27T15:53:56.243216+00:00 heroku[web.1]: State changed from starting to crashed

2017-10-27T15:53:56.228817+00:00 heroku[web.1]: Process exited with status 126

+0

私は私の元の答えに回避策を追加しました。 – Nicolae

+0

私はそれを見て、ありがとう! –

関連する問題