我正在尝试使用 jib 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
这是我得到的错误:
[错误] 无法执行目标 com.google.cloud.tools:jib-maven-plugin:0.9.11:dockerBuild (default-cli) on project my-application: Build to Docker daemon failed, 也许你应该确保 Docker已安装并且您有正确的权限来运行它-> [帮助 1]
更新
我更新到 2.2.0 并且它在本地运行。我之前添加了docker images
命令,插件似乎在Gitlab CI中找不到docker命令:
$ docker images && mvn compile jib:dockerBuild /bin/bash: line 97: docker: command not found
这是 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 && sync && /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>