Drone 플러그인 - Docker 플러그인

6253 단어 Drone
Drone 플러그인 시장 Drone 플러그인 문서
Docker 플러그인은 미러를 구성하고 Docker registry에 게시할 수 있습니다.다음 pipeline 구성에서는 Docker 플러그인을 사용하여 미러를 구축하고 게시합니다.
pipeline:
  docker:
    image: plugins/docker
    username: kevinbacon
    password: pa55word
    repo: foo/bar
    tags: latest

여러 태그의 예제 구성을 사용합니다.
pipeline:
  docker:
    image: plugins/docker
    repo: foo/bar
-   tags: latest
+   tags:
+     - latest
+     - 1.0.1
+     - 1.0

파일.tag의 예제 구성(쉼표로 구분된 tag 목록)을 사용합니다.
pipeline:
  build:
    image: golang:1.10.0-alpine
    commands:
      - [...]
+     - echo -n "5.2.6,5.2.4" > .tags
  docker:
    image: plugins/docker
    repo: foo/bar
-   tags: latest
build_args 매개변수를 사용한 예제 구성:
pipeline:
  docker:
    image: plugins/docker
    repo: foo/bar
+   build_args:
+     - HTTP_PROXY=http://yourproxy.com

대체 Dockerfile의 예제 구성을 사용하려면 다음과 같이 하십시오.
pipeline:
  docker:
    image: plugins/docker
    repo: foo/bar
-   dockerfile: Dockerfile
+   dockerfile: path/to/Dockerfile

사용자 정의registry의 예제 구성을 사용하려면 다음과 같이 하십시오.
pipeline:
  docker:
    image: plugins/docker
-   repo: foo/bar
+   repo: index.company.com/foo/bar
+   registry: index.company.com

인라인 자격 증명(inline credentials)의 예제 구성을 사용합니다.
pipeline:
  docker:
    image: plugins/docker
+   username: kevinbacon
+   password: pa55word
    repo: foo/bar

Drone의 웹 페이지를 통해 추가된 자격 증명secrets의 예제 구성을 사용합니다.
pipeline:
  docker:
    image: plugins/docker
-   username: kevinbacon
-   password: pa55word
    repo: foo/bar
+   secrets: [ docker_username, docker_password ]

자동 레이블 지정 Autotag
Docker 플러그인은 자동으로 거울에 tag를 만들 수 있도록 설정할 수 있습니다.이 기능을 켜고 이벤트 형식이 tag일 때 플러그인은 표준 major,minor,release 관례를 사용하여 거울로 tag를 만듭니다.예를 들면 다음과 같습니다.
  • 1.0.0생성dockertag1,1.0,1.0.0
  • 1.0.0-rc.1docker tag 생성1.0.0-rc.1
  • 이벤트 형식이push이고 목표 지점이 기본 지점일 때 (예:master) 플러그인은 자동으로 거울에 latest라는 tag를 추가합니다.다른 모든 이벤트 유형과 분기는 무시됩니다.
    샘플 구성:
    pipeline:
      docker:
        image: plugins/docker
        repo: foo/bar
    +   auto_tag: true
        secrets: [ docker_username, docker_password ]

    태그 접미사를 사용한 예제 구성:
    pipeline:
      docker:
        image: plugins/docker
        repo: foo/bar
    +   auto_tag: true
    +   auto_tag_suffix: linux-amd64
        secrets: [ docker_username, docker_password ]

    자동 표시auto_tag는 고의로 간단하고 맞춤형으로 만들 수 없는 것이므로 현재pull 요청을 받아들여 맞춤형 논리를 추가하지 않습니다.
    다단계 빌드(Multi-stage builds)
    Docker 플러그인은 공식 문서에 설명된 Dockerfile에 정의된 특정 단계에서 구축을 중지할 수 있습니다.target 속성이 정의되지 않은 경우 Docker 플러그인은 어느 단계에서도 중지되지 않으며 완전한 Docker 미러만 구성됩니다.
    The Docker plugin allow to stop build at a specific stage defined in Dockerfile as described in the official docs. If the target attribute is not defined, the Docker plugin will not stop at any stage and build the full docker image.
    Dockerfile 예:
    FROM golang as builder
    WORKSPACE /go/src/github.com/foo/bar
    RUN CGO_ENABLED=0 GOOS=linux go build -o demo main.go
    
    FROM scratch as production
    COPY --from=builder /go/src/github.com/foo/bar/demo .
    CMD ["./demo"]
    
    FROM alpine as debug
    COPY --from=builder /go/src/github.com/foo/bar/demo .
    CMD ["./demo"]

    프로덕션 환경 Docker 미러의 예제 구성을 구성할 수 있습니다.
    pipeline:
      docker:
        image: plugins/docker
        repo: foo/bar
    +   target: production
        secrets: [ docker_username, docker_password ]

    debug 환경 Docker 미러는 다음과 같이 구성됩니다.
    pipeline:
      docker:
        image: plugins/docker
        repo: foo/bar
    +   target: debug
        secrets: [ docker_username, docker_password ]

    시크릿 브로셔
  • docker_username: 이 사용자 이름으로 인증
  • docker_password: 이 비밀번호를 사용하여 인증
  • Parameter 브로셔
  • registry: 이registry에 대한 검증
  • username: 이 사용자 이름으로 인증
  • password: 이 비밀번호를 사용하여 인증
  • repo: 거울을 저장하는 창고 이름
  • tags: 미러링된 웨어하우스용 tag
  • dockerfile: 사용할 dockerfile, 기본값Dockerfile
  • auth:registry의 신분 검증 token
  • context: 사용할 상하문 경로,git창고의 루트 디렉터리
  • 로 기본값 설정
  • target: 사용할 구축 목표는 dockerfile에서 정의해야 합니다
  • force_tag=false: 기존의 일치하는 거울을 바꾸는 tag
  • insecure=false:registry에 대한 안전하지 않은 통신을 사용합니다
  • mirror: Docker의 기본 Hub에서 직접 가져오는 대신 registry 렌즈를 사용합니다
  • bip=false:bridge IP 전달용
  • custom_nns: 컨테이너에 대한 사용자 정의 DNS 서버 설정
  • storage_driver:aufs,overlay 또는 vfs 드라이버 지원
  • build_args: 사용자 정의 매개 변수가 docker build
  • 에 전달됨
  • auto_tag=false:git 분기와git 라벨에 따라 자동으로 라벨 이름 생성
  • auto_tag_suffix: 이 접미사로 탭 이름 만들기
  • debug, launch_debug: 디버그 모드로 docker 수호 프로세스를 시작합니다
  • 좋은 웹페이지 즐겨찾기