如何在Azure DevOps的azure-pipelines.yml中将Docker集线器用作Docker组成任务的容器注册表?

问题描述 投票:0回答:1

我在Azure Repos中使用基于mysql的应用程序进行了春季启动。我在存储库中同时有Dockerfiledocker-compose.yml文件。在docker-compose.yml文件中,我定义了两个服务-一个用于应用程序,另一个用于mysql。我打算在azure-pipelines.yml文件中添加Docker Compose任务,并点击以下链接:https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/docker-compose?view=azure-devops

docker-compose.yml

version: '3'

services:
  mysql-docker-container:
    image: mysql:latest
    environment:
      - MYSQL_ROOT_PASSWORD=root123
      - MYSQL_DATABASE=spring_app_db
      - MYSQL_USER=app_user
      - MYSQL_PASSWORD=test123
    volumes:
      - /data/mysql
  spring-boot-jpa-app:
    image: kbdockerimage
    build:
      context: ./
      dockerfile: Dockerfile
    depends_on:
      - mysql-docker-container
    ports:
      - 8087:8080
    volumes:
      - /data/spring-boot-app

我面临使用Docker Compose Task将Docker映像推送到我的Docker Hub帐户的问题。我在管道文件中使用以下代码来推送docker映像。在这里,kumaresh-dh是Docker集线器的服务连接的名称。

- task: DockerCompose@0
  displayName: Push services
  inputs:
    action: Push services
    containerregistrytype: Container Registry
    containerRegistry: kumaresh-dh
    dockerComposeFile: docker-compose.yml
    projectName: $(dockerhubNS)/$(imageName):$(Build.BuildId)
docker docker-compose azure-pipelines azure-pipelines-build-task dockerhub
1个回答
0
投票

根据文档,这是您应该指定连接的方式:

- task: DockerCompose@0
  displayName: Container registry login
  inputs:
    containerregistrytype: Container Registry
    dockerRegistryEndpoint: kumaresh-dh
    action: Push services
    dockerComposeFile: docker-compose.yml
    projectName: $(dockerhubNS)/$(imageName):$(Build.BuildId)

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/docker-compose?view=azure-devops#other-container-registries

© www.soinside.com 2019 - 2024. All rights reserved.