GitHub Actions로 명명 컨텍스트 사용하기

GitHub Actions로 명명 컨텍스트 사용하기 (Named contexts with GitHub Actions)

명명 컨텍스트(named contexts)는 빌드에서 다른 스테이지를 참조할 때 Dockerfile에 정의된 특정 이름의 컨텍스트를 쓰게 해 줘요. Dockerfile이 같은 이름의 스테이지를 정의하면 덮어써져요.

이 기능은 GitHub Actions에서 다른 빌드의 결과를 재사용하거나, 워크플로에서 이미지를 특정 태그로 고정(pin)할 때 유용해요.

출처: 문서

본문

이미지를 특정 태그로 고정하기 (Pin image to a tag)

build-contexts 입력으로 Dockerfile의 alpine 컨텍스트를 특정 태그로 고정된 이미지로 바꿀 수 있어요:

# syntax=docker/dockerfile:1
FROM alpine
RUN echo "Hello World"
name: ci

on:
  push:

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v4

      - name: Build
        uses: docker/build-push-action@v7
        with:
          build-contexts: |
            alpine=docker-image://alpine:3.23
          tags: myimage:latest

후속 단계에서 이미지 사용하기 (Use image in subsequent steps)

GitHub Actions 러너는 docker-container를 빌드 드라이버로 사용하므로, 빌드한 Docker 이미지가 자동으로 로드되지 않아요. 명명 컨텍스트로 빌드된 이미지를 재사용할 수 있어요:

# syntax=docker/dockerfile:1
FROM alpine
RUN echo "Hello World"
name: ci

on:
  push:

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v4
        with:
          # ...
      - name: Build
        uses: docker/build-push-action@v7
        with:
          build-contexts: |
            alpine=docker-image://myimage:latest
          tags: myimage:latest

이렇게 하면 이전에 빌드한 이미지를 컨텍스트로 참조해 재사용할 수 있어요.

더 알아보기 (Learn more)