1

私の Spring Boot アプリケーションは ElasticSearch を使用しているため、統合テストのために ElasticSearch のインスタンスを開始する必要があります。ElasticSearchの Docker コンテナーを起動するには、を使用しますdocker-maven-plugin。統合テストは、GitLab と開発者のマシンで動作するはずです。

私のコードは、Unix ソケットを使用して GitLab の Runner (Docker コンテナー) で動作しますが ( Docker ソケット バインディングの使用を参照)、開発者のマシンでは動作しません。

Docker コンテナー ( ) の内部 IP アドレスは、172.17.0.2Docker Desktop for Windows (Docker ホスト) では認識されません。Docker Desktop for Windows のネットワーク機能 を参照してください。

ソース

<plugin>
    <groupId>io.fabric8</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.33.0</version>
    <configuration>
        <registry>docker.elastic.co</registry>          
        <imagePullPolicy>always</imagePullPolicy>
        <images>
            <image>
                <alias>elasticsearch</alias>
                <name>elasticsearch/elasticsearch:7.6.2</name>
                <run>
                    <env>
                        <discovery.type>single-node</discovery.type>
                    </env>
                    <wait>
                        <http>
                            <url>http://${docker.container.elasticsearch.ip}:9200</url>
                            <method>GET</method>
                            <status>200</status>
                        </http>
                        <time>60000</time>
                    </wait>
                </run>
            </image>
        </images>
    </configuration>
    <executions>
        <execution>
            <id>docker:start</id>
            <phase>pre-integration-test</phase>
            <goals>
                <goal>start</goal>
            </goals>
        </execution>
        <execution>
            <id>docker:stop</id>
            <phase>post-integration-test</phase>
            <goals>
                <goal>stop</goal>
            </goals>
        </execution>
    </executions>
</plugin>

追加情報

ログ

[INFO] DOCKER> Pulling from elasticsearch/elasticsearch
[INFO] DOCKER> Digest: sha256:59342c577e2b7082b819654d119f42514ddf47f0699c8b54dc1f0150250ce7aa
[INFO] DOCKER> Status: Image is up to date for docker.elastic.co/elasticsearch/elasticsearch:7.6.2
[INFO] DOCKER> Pulled elasticsearch/elasticsearch:7.6.2 in 2 seconds 
[INFO] DOCKER> [elasticsearch/elasticsearch:7.6.2] "elasticsearch": Start container 121efac6ba65
[INFO] DOCKER> [elasticsearch/elasticsearch:7.6.2] "elasticsearch": Waiting on url http://172.17.0.2:9200 with method GET for status 200.
[ERROR] DOCKER> [elasticsearch/elasticsearch:7.6.2] "elasticsearch": Timeout after 60700 ms while waiting on url http://172.17.0.2:9200
[ERROR] DOCKER> Error occurred during container startup, shutting down...
[INFO] DOCKER> [elasticsearch/elasticsearch:7.6.2] "elasticsearch": Stop and removed container 121efac6ba65 after 0 ms
[ERROR] DOCKER> I/O Error [[elasticsearch/elasticsearch:7.6.2] "elasticsearch": Timeout after 60700 ms while waiting on url http://172.17.0.2:9200]

リサーチ

質問

docker-maven-pluginGitLab と開発者のマシンに1 つの構成のみを使用することは可能ですか?

4

0 に答える 0