GitHub Actions로 시크릿 사용하기

GitHub Actions로 시크릿 사용하기 (Using secrets with GitHub Actions)

빌드 시크릿은 빌드 과정에서 소비되는 비밀번호나 API 토큰 같은 민감한 정보예요. Docker Build는 두 가지 형태의 시크릿을 지원해요:

  • 시크릿 마운트 (Secret mounts): (기본적으로) 시크릿을 빌드 안으로 노출해요.
  • SSH 마운트 (SSH mounts): SSH 에이전트 소켓이나 키를 빌드 컨테이너에 추가해요.

이 페이지에서는 GitHub Actions에서 시크릿을 사용하는 방법을 다뤄요. 시크릿 전반에 대한 소개는 Build secrets 문서를 참고해요.

출처: 문서

본문

시크릿 마운트 (Secret mounts)

워크플로에서 GitHub가 제공하는 시크릿을 secrets로 넘길 수 있어요. 시크릿을 사용하는 Dockerfile 예시:

# syntax=docker/dockerfile:1
FROM alpine
RUN --mount=type=secret,id=github_token,env=GITHUB_TOKEN ...

build-push-actionsecrets 입력:

name: ci

on:
  push:

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - name: Set up QEMU
        uses: docker/setup-qemu-action@v4

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v4

      - name: Build
        uses: docker/build-push-action@v7
        with:
          platforms: linux/amd64,linux/arm64
          tags: user/app:latest
          secrets: |
            "github_token=${{ secrets.GITHUB_TOKEN }}"

--mount=type=secret,env=GITHUB_TOKEN처럼 시크릿을 환경 변수로 노출하거나, mount 경로를 커스터마이즈하는 옵션을 쓸 수 있어요. 이렇게 하면 시크릿이 최종 이미지에 남지 않고 빌드 과정에서만 사용돼요.

더 알아보기 (Learn more)