2017-10-11 2 views
0

Windows 서버 2016 (단일 VM, On Premise)에서 데이터 처리를 위해 도커 이미지를 실행합니다. 내 이미지는 Azure 컨테이너 레지스트리에 저장됩니다. 코드는 자주 변경되지 않습니다. 보안 업데이트를 얻으려면 Microsoft/windowsservercoreis가 업데이트 된 후 다시 작성하고 릴리스하는 것이 좋습니다.트리거 VSTS 도커 허브 이미지 업데이트 후 빌드

이렇게하는 것이 가장 좋은 방법이 있습니까?

나는 약 3이 해결의 방법으로 생각 :

  1. 실행 예약 된 빌드마다 24 시간,은 Microsoft/windowsservercore 당겨 빌드 날짜를 얻을하고 비교하는 내 사용자 정의 이미지, 실행 PowerShell을 당겨을 (또는 사용 histroy id 중 일부). 다시 빌드해야하는 경우 새 이미지를 빌드하고 빌드에 태그를 지정하십시오. 이 태그에서만 실행되도록 릴리스를 구성하십시오.
  2. 작업을 실행하여 고정 표시기 이미지의 업데이트 시간을 확인하고 REST 요청으로 빌드를 트리거합니다.
  3. 기본 Docker 파일을 github에 놓습니다. microsoft/windowsservercore에 대한 트리거를 사용하여 자동화 된 Build를 설정하고 webhook을 WebService로 구성합니다.이 Webhook은 REST로 Build를 시작합니다.

하지만이 아이디어가 정말 마음에 들지 않습니다. 더 나은 옵션이 있습니까? 당신은 직접 간단한 워크 플로우 Azure Container Registry webhooks을 사용할 수 있습니다

답변

0

옵션 3을 선택합니다. 따라서 나는 한 줄 Dockerfile와 github의 repository을 설정 : 자동화 된 빌드는 현재 윈도우의 이미지를 지원하지 않기 때문에

FROM alpine 

나는, 고산 이미지가 아닌 windowsservercore을 사용했다. 나는 도커 허브에 자동화 된 빌드를 구성하고 microsoft/windowsservercore에 링크 된 저장소를 추가했습니다. 그러면 에 HTTP 요청 트리거가 설정되어 빌드가 시작됩니다. Flow to start the build 자동화 된 빌드의 새 webhook에 플로우 URL을 추가하십시오.

이것은 나를 구성하고 함께 사용해야하는 많은 움직이는 부분이지만 더 좋은 방법은 모른다.

1

: 푸른 컨테이너 레지스트리를 작성 Queue a build Rest API

  • 을 통해 세부 요청 (은 webhook 요청)에 당 빌드를 큐에 웹 API 프로젝트를 빌드

    1. 웹을 호출하는으로 webhook API (1 단계)
  • +0

    microsoft/windowsservercore 도커 허브 이미지가 업데이트 될 때 빌드를 실행하고 싶습니다. 그러나 acr webhook의 문서에는 "특정 작업이 레지스트리 저장소 ** 중 하나에서 발생하면 이벤트를 트리거하기 위해 웹 훅을 사용합니다"라고되어 있습니다. – sschoof

    +0

    이런 식으로 확인하십시오 [Docker Hub에서 자동화 된 빌드 구성] (https://docs.docker.com/docker-hub/builds/). (너의 것의 세 번째 길은 분명하지 않다. 어쩌면 그들은 비슷할 것이다.) –

    +0

    예, 이것이 제 3의 아이디어였습니다. – sschoof

    관련 문제