Azure DevOps构建基准线

时间:2019-07-16 14:21:57

标签: azure docker azure-devops dockerfile

我是AzureDevOps的新手,我试图将Azure DevOps用于我的C ++项目之一。我的要求如下。 1:构建C ++并发布到Artifactory(Azure),这是我能够做到的,并且能够在Artifactory中发布。
2:我想在二进制文件的帮助下构建Docker映像时使用该Artifactory(二进制文件)。但是我无法在Azure DevOps中实现。在本地,我能够使用二进制文件和正在运行的文件来构建docker映像。

作为总结,我正在写。

我需要使用上一个任务中的构建工件来创建简单的发布管道 ●发布管道应构建具有以下要求的Docker映像 ○必须包含来自构建管道的构建工件。

请找到以下代码:

trigger:
- master

jobs:
- job: gcctest
  pool:
   vmImage: 'ubuntu-16.04'
  steps:
  - script: sudo apt-get update && sudo apt-get install libboost-all-dev
  - script: g++ -std=c++11 -I/usr/include/boost/asio -I/usr/include/boost -o binary.out main.cpp
          connection.cpp connection_manager.cpp mime_types.cpp reply.cpp request_handler.cpp request_parser.cpp server.cpp -lboost_system -lboost_thread -lpthread

  - powershell:
        $commitId= "$env:BUILD_SOURCEVERSION"

        $definitionName= "$env:BUILD_DEFINITIONNAME"

        $shortId= $commitId.Substring(1, 8)

        $buildName="$definitionName.$shortId"   

        Write-Host $buildName  

        Write-Output "$buildName">readme.txt

  #       echo "##vso[task.setvariable variable=text]$buildName"
  - task: CopyFiles@2
    inputs:
      sourceFolder: '$(Build.SourcesDirectory)'
      contents: '?(*.out|*.txt)'
      targetFolder: $(Build.ArtifactStagingDirectory)
  - task: PublishBuildArtifacts@1
    inputs:
        pathToPublish: $(Build.ArtifactStagingDirectory)
        artifactName: result

  - task: Docker@1
    displayName: 'Build using multi-stage'
    inputs:
   containerregistrytype: 'Container Registry'
   dockerRegistryEndpoint: 'My Container Registry'
     arguments: '--build-arg ARTIFACTS_ENDPOINT=$(ArtifactFeed)' 

Docker文件:

FROM ubuntu:18.04
RUN apt-get update
RUN apt-get install -y libboost-all-dev
COPY .  /app
EXPOSE 80
CMD /app/binary.out 0.0.0.0 80 .```
~                              

预期结果:

Docker image should build by artifact and able to publish on DockerHub repo.

0 个答案:

没有答案