首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker在ado流水线中合成

docker在ado流水线中合成
EN

Stack Overflow用户
提问于 2021-07-01 02:16:19
回答 1查看 363关注 0票数 0

我正在尝试让docker-compose与我的yaml文件一起在Azure Dev Ops管道中运行,但我一直收到类似以下的错误

代码语言:javascript
复制
Using docker-compose from 'dockerComposePath' 
##[error]/agent/_work/6/s/docker-compose.yml: 1: /agent/_work/6/s/docker-compose.yml: version:: not found
##[error]/agent/_work/6/s/docker-compose.yml: 2: /agent/_work/6/s/docker-compose.yml: services:: not found
##[error]/agent/_work/6/s/docker-compose.yml: 3: /agent/_work/6/s/docker-compose.yml: app1:: not found
##[error]/agent/_work/6/s/docker-compose.yml: 4: /agent/_work/6/s/docker-compose.yml: build:: not found
##[error]/agent/_work/6/s/docker-compose.yml: 5: /agent/_work/6/s/docker-compose.yml: context:: not found
##[error]/agent/_work/6/s/docker-compose.yml: 6: /agent/_work/6/s/docker-compose.yml: app2:: not found
##[error]/agent/_work/6/s/docker-compose.yml: 8: /agent/_work/6/s/docker-compose.yml: build:: not found
##[error]/agent/_work/6/s/docker-compose.yml: 9: /agent/_work/6/s/docker-compose.yml: ports:: not found
##[error]/agent/_work/6/s/docker-compose.yml: 10: /agent/_work/6/s/docker-compose.yml: -: not found
##[error]The process '/agent/_work/6/s/docker-compose.yml' failed with exit code 127

我的docker-compose.yml如下所示

代码语言:javascript
复制
  - task: DockerCompose@0
    displayName: 'Start docker compose'
    inputs:
      containerregistrytype: 'Container Registry'
      dockerComposePath: '$(Pipeline.Workspace)/s/docker-compose.yml'
      dockerComposeFile: 'docker-compose.yml'
      action: 'Run a Docker Compose command'
      dockerComposeCommand: 'up -d'

我最初认为这与CRLF和LF有关,但更改这些并不会影响任何事情。使用"docker compose up“命令可以很好地在本地构建。

我的docker-compose.yml如下所示

代码语言:javascript
复制
version: '3'
services:
  app1:
    build: 
      context: ./test/app1
  app2:
    build: ./test/app2
    ports:
      - "3306:3306"

注意:我也在yaml文件中尝试过此方法,但出现了类似的错误。

代码语言:javascript
复制
  #- task: DockerCompose@0
  #  displayName: docker compose - Build services
  #  inputs:
  #    action: Build services
  #    azureSubscriptionEndpoint: <redacted>
  #    azureContainerRegistry: <redacted>
  #    containerregistrytype: Azure Container Registry
  #    dockerComposePath: '$(Pipeline.Workspace)/s/docker-compose.yml'
  #    #dockerComposeFile: docker-compose.yml
  #    projectName: aakriti-test
  #    qualifyImageNames: true
  #    additionalImageTags: $(Build.BuildId)
  #    dockerComposeFileArgs: |
  #      firstArg=$(firstArg)
  #      secondArg=$(secondArg)
EN

回答 1

Stack Overflow用户

发布于 2021-07-01 16:05:36

127与not found有关。

可能和你的dockerComposePath有关?我不确定您是否需要在$(Pipeline.Workspace)之后提供/s

代码语言:javascript
复制
  - task: DockerCompose@0
    displayName: 'Start docker compose'
    inputs:
      containerregistrytype: 'Container Registry'
      #dockerComposePath: '$(Pipeline.Workspace)/s/docker-compose.yml' If you remove the path the current work directory will be used
      dockerComposeFile: 'docker-compose.yml'
      action: 'Run a Docker Compose command'
      dockerComposeCommand: 'up -d'

如果它不工作,我会尝试一个PowerShell任务,只是确保CRLF像你说的那样一切正常,如下所示:

代码语言:javascript
复制
  - task: PowerShell@2
    displayName: 'Docker compose'
    inputs:
      targetType: 'inline'
      script: 'docker-compose up -d'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68199805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档