GitHub Actions 비밀값을 Docker 이미지에 복사하지 않고 빌드에 쓰기
비공개 패키지 설치용 토큰을 일반 파일로 복사하면 이미지 계층이나 빌드 컨텍스트에 남을 위험이 있습니다. Docker의 빌드 비밀 마운트는 특정 RUN 단계에서 비밀을 사용하는 방식을 제공합니다. CI의 비밀 저장소에 등록했다는 이유만으로 이후 사용

- 빌드에 필요한 자격증명과 결과 이미지 파일을 구분합니다
- CI 입력과 Dockerfile 소비 지점을 연결합니다
- 도구가 비밀을 다른 파일에 남기는지도 봅니다
빌드에 필요한 자격증명과 결과 이미지 파일을 구분합니다
비공개 패키지 설치용 토큰을 일반 파일로 복사하면 이미지 계층이나 빌드 컨텍스트에 남을 위험이 있습니다. Docker의 빌드 비밀 마운트는 특정 RUN 단계에서 비밀을 사용하는 방식을 제공합니다. CI의 비밀 저장소에 등록했다는 이유만으로 이후 사용 방식까지 안전해지는 것은 아닙니다.
CI 입력과 Dockerfile 소비 지점을 연결합니다
빌드 액션의 secrets·secret-envs·secret-files 중 출처에 맞는 방식을 선택하고 Dockerfile의 비밀 마운트 ID와 맞춥니다. 비밀을 어떤 경로나 환경변수로 읽을지도 지정합니다. 실행 사용자가 파일을 읽을 권한이 있는지 확인하되 비밀 내용을 출력해 확인하지 않습니다. 예를 들어 액션의 비밀 이름을 private_token으로 지정했다면 Dockerfile RUN의 --mount=type=secret,id=private_token처럼 같은 ID를 사용합니다. 기본 파일 위치는 /run/secrets/private_token이며 env 옵션을 선택한 경우에는 해당 환경변수로 읽습니다. 여기의 이름은 설명용이고 실제 토큰을 본문에 넣지 않습니다.
도구가 비밀을 다른 파일에 남기는지도 봅니다
비밀 마운트를 써도 설치 도구가 토큰을 설정 파일이나 로그로 복사하면 노출 경로가 생길 수 있습니다. 결과 이미지와 로그에 필요 없는 인증 자료가 남지 않는지 검토합니다. 토큰 교체 뒤 빌드 캐시를 어떻게 처리할지도 따로 정하고 실제 권한은 필요한 저장소 범위로 제한합니다.
서버 운영 실행 전 점검표
- 빌드에 필요한 자격증명과 결과 이미지 파일을 구분합니다
- CI 입력과 Dockerfile 소비 지점을 연결합니다
- 도구가 비밀을 다른 파일에 남기는지도 봅니다
이 가이드의 근거 문서
출처 확인일: 2026-11-04. 공식 문서에 기반한 편집 가이드이며 직접 수행한 벤치마크가 아닙니다. 비용 사례는 명시된 가정에 한합니다.
오류 제보 방법