1

ジブ Maven プラグインを使用して、Gitlab 継続的インテグレーションで自分のアプリケーションで Docker イメージを構築しようとしていますが、dind (docker-in-docker) サービスを使用してプラグインを docker デーモンに接続できません。現在、gitlab-ci.yml ファイルでこの構成を使用しています。

deploy:mvn:
  image: maven:3.6.3-jdk-8-openj9
  stage: deploy
  services:
    - docker:dind
  script:
    - mvn compile jib:dockerBuild

これは私が得るエラーです:

[エラー] プロジェクト my-application でゴール com.google.cloud.tools:jib-maven-plugin:0.9.11:dockerBuild (default-cli) を実行できませんでした: Docker デーモンへのビルドに失敗しました。インストール済みで、それを実行するための正しい権限を持っている -> [ヘルプ 1]


アップデート

2.2.0 に更新し、ローカルで実行しています。以前にコマンドを追加しましたがdocker images、プラグインは Gitlab CI で docker コマンドを見つけることができないようです:

$ docker images && mvn compile jib:dockerBuild /bin/bash: 97 行目: docker: コマンドが見つかりません

これは、jib プラグインの構成です。

<plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>jib-maven-plugin</artifactId>
    <version>2.2.0</version>
    <configuration>
        <from>
            <image>adoptopenjdk/openjdk11:alpine-jre</image>
        </from>
        <to>
            <image>my-application:latest</image>
        </to>
        <container>
            <entrypoint>
                <shell>sh</shell>
                <option>-c</option>
                <arg>chmod +x /entrypoint.sh &amp;&amp; sync &amp;&amp; /entrypoint.sh</arg>
            </entrypoint>
            <ports>
                <port>8080</port>
            </ports>
            <environment>
                <SPRING_OUTPUT_ANSI_ENABLED>ALWAYS</SPRING_OUTPUT_ANSI_ENABLED>
                <JHIPSTER_SLEEP>0</JHIPSTER_SLEEP>
            </environment>
            <creationTime>USE_CURRENT_TIMESTAMP</creationTime>
        </container>
    </configuration>
</plugin>
4

2 に答える 2

0

最後に、これは私が使用した構成です。

services:
    - docker:dind


deploy:mvn:
    image: maven:3.6.3-jdk-8-openj9
    stage: deploy
    script:
        - export DOCKER_HOST=tcp://docker:2375
        - mvn compile jib:build -Djib.to.auth.username=$DOCKER_REGISTRY_USER -Djib.to.auth.password=$DOCKER_REGISTRY_PWD
    only:
        - tags

Docker サービスで Docker を使用する以外に、DOCKER_HOST 環境変数を確立し、資格情報をmvn jib:buildコマンドに渡す必要がありました。認証情報を CI 設定に環境変数として保存しました。助けてくれてありがとう@Chanseok Oh。

以下も参照してください。

于 2020-04-21T20:28:48.170 に答える