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-action의 secrets 입력:
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 경로를 커스터마이즈하는 옵션을 쓸 수 있어요. 이렇게 하면 시크릿이 최종 이미지에 남지 않고 빌드 과정에서만 사용돼요.