2017-02-02 4 views
2

私はgitlab-ciに初心者です。ドッカーエグゼキュータを使用してプライベートサーバーにgitlabランナーを設定しました。新しいコミットをレポにマージすると、ビルドがトリガーされます。 Web UIのGitlabから確認できます。
私が理解しているように、ジョブはランナーサーバー上で実行されるので、ドッカーコンテナーはプライベートランナーサーバー上に作成されます。しかし、私はコンテナを見ることができません、私はdocker ps -aや私はコンテナを作成するために使用されているドッカーの画像さえ見ることができません。
コンテナ/イメージ実行ジョブを確認する方法はありますか?それとも私の理解に間違いがありますか?gitlab-ciランナーのDocker Executor |ビルドがどこで行われているのかを確認するにはどうすればいいですか?

ジョブのログはウェブコンソールで見ることができますが、そのログはCLIで確認できますか?

いつでも間違っている場合は私を修正してください。

+0

'docker ps'を実行しているユーザーに、実行中のコンテナを表示する権限があることを確認してください。私はソケット共有でオリジナルのgitlab-runner dockerイメージを使用しています。起動後(そしてGitLabに登録する)コンテナが常時動作しています。ランナーが仕事をしている間、私は 'docker ps'でもっと多くのエントリーを見ることができます。その後、 'docker ps -a'で停止して見えます。 –

答えて

1

私はドッカーps -aをしたり、コンテナの作成に使用されているドッカーイメージを見ることができません。

docker:dind service(docker in docker)を有効にしていると、これは予想されます。

あなたのコンテナはDocker socket bindingとしか表示されません。ドッカーコマンドによって生成されたコンテナは、ランナーの子ではなくランナーの兄弟になります。

ドッカーデーモンを共有することで、コンテナのすべてのセキュリティメカニズムが実質的に無効になり、ホストが権限エスカレーションにさらされるため、コンテナが破損する可能性があります。
たとえば、プロジェクトがdocker rm -f $(docker ps -a -q)になった場合、GitLab Runnerコンテナが削除されます。

+0

なぜ私はドッカーを活性化しなければならないのか理解できません。私はドッカーのコンテナがgitlabランナーホスト上で実行されていると信じていますか?もしそうなら、 'docker ps -a'を実行するだけでビルドが起動された後、コンテナが見えるようにする必要があります。 – Rohanil

+0

@Rohanilあなたはシェルエグゼキュータを使用していますか? (https://docs.gitlab.com/ce/ci/docker/using_docker_build.html#use-shell-executor) – VonC

+0

私は[docker executor](https://docs.gitlab.com/runner/executors/)を使用しています。 docker.html) – Rohanil

関連する問題