2017-01-04 12 views
0

私のプロジェクトではmaven-docker-pluginを使用しています。このプラグインは、統合テスト中にドッカーコンテナを作成します。 drone.ioはビルドプロセスをドッカーコンテナに入れているので、mavenビルド中にmaven-docker-pluginを使用できるかどうかは関係ありませんか?ビルド時にドッカーコンテナを制御するには?drone.ioがビルドプロセス中にドッカーを作成するかどうか

答えて

1

Dockerデーモンと直接対話してコンテナを作成して開始するには、ホストマシンのDockerソケットをビルドコンテナにマウントする必要があります。

あなたがドッキングウィンドウ-のmaven-プラグインを使用して言及したので、次のような構成をしたいことがあります。

pipeline: 
    build: 
    image: maven 
    environment: 
     - DOCKER_API_VERSION=1.20 
     - DOCKER_HOST=/var/run/docker.sock 
    volumes: 
     - /var/run/docker.sock:/var/run/docker.sock 
    commands: 
     - mvn clean package docker:build 

をビルド環境にドッカーデーモンをさらすことは、本質的にビルドルートアクセス権を与えていることに注意してくださいあなたのサーバー。したがって、このアプローチは公開リポジトリには推奨されません。

ボリュームはセキュリティ上の理由から制限されています。ボリュームを使用するには、Drone管理者にリポジトリの設定画面で信頼できるとマークする必要があります。

したがって、テストを実行する目的で、ビルド環境内からコンテナを起動することは可能です。ただし、推奨されるアプローチは、ビルド環境内でテストを直接実行することです。これは、Droneが最適化されているユースケースであり、前述のセキュリティ問題を解消します。

+0

私が作成したドッカー画像は公開用ではありません。これは単にテスト環境用です。 'mvn install'コマンドを実行すると、maven-dockerは2つのドッカーコンテナを作成し、テストケースがトリガされます。無人機を使用している場合、同じ方法でmvn installを起動できますか?ドローンサポートがドローンサーバー内でドッキングコンテナーを実行するかどうか –

+0

上記のアドバイスは依然として適用されます。ドッカーコンテナを起動する場合は、ホストマシンのDockerソケットをビルド環境にマウントする必要があります –

関連する問題