update.はじめにここまで自分が投稿した記事を使って、下記が作れるようになりました。下記のような構成を目指します。(全てdockerコンテナです。registry下記を参考にregistryコンテナを用意します。下記を参考にGitLabコンテナを用意します。IDなどは省略GitLabにログイン後、プロジェクトを作成し、ローカルと連携します。ubuntu1404_testディレクトリの中には簡単なDockerfileが入っています。※ディレクトリ名をイメージタグに使用するので、重複などしないように注意して下さい。下記を参考にしつつ、必要なモジュールを追加したJenkinsコンテナを用意します。0.0.0.0:28080->8080/tcpここで、GitLabと連携を行うため、jenkinsユーザーの個別設定を行います。※本来ならDockerfileで完結すべきなのですが、rootユーザー以外での権限設定がうまくいかないためコンテナ内で作業を行います。~/.ssh/id_rsa※[GITLAB_ON_DOCKER_HOST]、[DOCKER_HOST_PORT_MAPPED_GITLAB_PORT_22]は適宜修正して下さい。※[DOCKER_HOST_PORT_MAPPED_GITLAB_PORT_22]はここでは10022です。(上述のGitLabコンテナ作成時を参照)後ほど、GitLabに登録するため、id_rsa.pubを控えておきます。"jenkins"ここまでで、Jenkinsコンテナ内での作業は終わりです。次にJenkinsのWebUIにて、必要なプラグインをインストールします。Plugin」をインストールします。ユーザーを追加GitLabにAdmin権限を持つユーザーでログインします。userからjenkinsユーザーを作成します。※パスワードはユーザー作成後に、編集できます。次に、Admin権限を持つユーザーをログアウトして、作成したjenkinsユーザーでログインします。Keyを選択し、先ほどjenkinsコンテナ内で生成したid_rsa.pubを設定して下さい。再度、ログアウトをし、Dockerfile_CIプロジェクトを作成したユーザーでログインします。memberを選択し、jenkinsユーザーを追加します。hook設定を行います。Hookshttp://[JENKINS_ON_DOCKER_HOST]:[DOCKER_HOST_PORT_MAPPED_JENKINS_PORT_8080]/job/Dockerfile_CI/build?delay=0sec※[JENKINS_ON_DOCKER_HOST]:[DOCKER_HOST_PORT_MAPPED_JENKINS_PORT_8080]は適宜修正して下さい。※[DOCKER_HOST_PORT_MAPPED_JENKINS_PORT_8080]はここでは28080です。フリースタイル・プロジェクトのビルドを選択します。(ジョブ名は何でも構いません。Addを選択し、ユーザー名jenkinsを作成します。URLにはGitLabプロジェクトのSSHを入力して下さい。ここでは[DOCKER_HOST]を書いているため、エラーを出力していますが、正しいGitLabプロジェクトのSSHを入力することで、このエラーは出力されなくなります。$VERSIONdone通知の設定このままではビルド失敗時に何も通知されません。今回はGmailを利用した通知の設定を行います。UTF-8上記を設定し、保存します。hoge@gmail.com,fuga@gmail.comこれで設定は全て終了です。registryにpushされているか確認build失敗時は次のようになる。Hookの部分はJenkinsのビルド実行をそのまま叩いていますが、下記のような設定方法もあります。http://[JENKINS_ON_DOCKER_HOST]:[DOCKER_HOST_PORT_MAPPED_JENKINS_PORT_8080]/gitlab/build_now元々こちらを使用するつもりでしたが、ポートの指定が異なるためか、うまくWebHookが通らないので、今回は避けました。今回の実装では、confファイルなどを考慮していません。そのため、Dockerfileと同階層に別のファイルがあった場合、おそらくエラーになります。(未確認)解決策はdockerclient.py内へ設定ファイル込みのbuildを記述することと、Jenkinsシェルの設定を追記することですが、そちらはまだ未実装です。おわりに少し長くなってしまいましたが、最後までお読み頂き、ありがとうございました。requestStockLike78@DG0426気が向いたときに記事を更新しています。upLoginユーザーは見つかりませんでした。