提问者:小点点

使用spring-boot时如何发布docker映像:build-image


我正在使用Github Actions自动化从Spring boot(mvn spring-boot: build-image)推送在maven插件帮助下生成的docker映像的过程,但我收到一个maven错误:

由以下原因引起:org. apache.maven.plugin.PluginExecutionException:目标org.springframe.boot的执行default-cli:spring-boot-maven-plugin:3.0.0:build-image失败:推送图像时收到错误响应:拒绝:对资源的请求访问被拒绝

使用以下配置:

  - name: Build image & push
    run: |
      cd myFolder
      mvn -X spring-boot:build-image \
        --batch-mode --no-transfer-progress \
        -Dspring-boot.build-image.publish=true \
        -Dspring-boot.build-image.imageName="MY_USER/demo-ms:0.1.0" \
        -DCI_REGISTRY=https://index.docker.io/v1 \
        -DCI_REGISTRY_USER=${{ secrets.DOCKERHUB_USERNAME }} \
        -DCI_REGISTRY_PASSWORD=${{ secrets.DOCKERHUB_TOKEN }}

https://docs.spring.io/spring-boot/docs/current/maven-plugin/reference/htmlsingle/#build-image.examples.docker.auth

我错过了什么?

事先非常感谢

胡安·安东尼奥


共1个答案

匿名用户

在github操作中,可以运行脚本,所以我找到了一个替代方案:

在github操作级别:

  - name: Build image & push
    run: |
      cd myFolder
      ./build-spring-boot.sh ${{ secrets.DOCKERHUB_USERNAME }} ${{ secrets.DOCKERHUB_PASSWORD }}

在脚本级别:

docker login "https://index.docker.io/v1/" -u="$1" -p="$2"

mvn spring-boot:build-image \
    --batch-mode --no-transfer-progress

IMAGE_NAME=$(mvn help:evaluate -Dexpression=docker.image.name -q -DforceStdout)
echo $IMAGE_NAME

docker push $IMAGE_NAME

这样,您就可以发布您的图像。