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
이렇게 하면 이전에 빌드한 이미지를 컨텍스트로 참조해 재사용할 수 있어요.