エラーは、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"]
我々はちょうどDockerfile
でCMD
スタンザを必要とheroku container:push
チェックを通過するCMD
スタンザを追加している、通常の環境でそれを必要はありませんが、--debug=5
はjenkins.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
おかげであなたの答えのためにたくさん! –
私の 'Dockerfile'のコメント行にあるように、Jenkinsにいくつかのプラグインをインストールしたいのですか? –
@ S.Raman私はあなたのユースケースをカバーするための応答を編集しました。 – Nicolae