This commit is contained in:
병준 박 2025-04-13 04:51:15 +00:00
parent bad82ad2fb
commit 78129195c9

View File

@ -1,34 +1,28 @@
# Dockerfile (kaniko-with-bash) docker.unbox-x.net/registry/tools/kaniko:v1.23.2
# Stage 1: 공식 Kaniko executor 바이너리 추출
FROM gcr.io/kaniko-project/executor:v1.23.2 AS kaniko
# Stage 2: 안전한 Bash 환경을 가진 최종 이미지
FROM debian:bookworm-slim
# 보안: 루트 인증서 및 최소 도구 설치
# 기본 유틸 설치
RUN apt-get update && \
apt-get install -y --no-install-recommends \
bash \
coreutils \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
bash coreutils ca-certificates curl && \
rm -rf /var/lib/apt/lists/*
# 보안: executor 바이너리 복사 (Go 정적 빌드 바이너리)
COPY --from=kaniko /kaniko/executor /kaniko/executor
# kaniko 바이너리 복사
COPY --from=gcr.io/kaniko-project/executor:v1.23.2 /kaniko/executor /kaniko/executor
# 보안: 실행 디렉토리 및 사용자 지정
RUN addgroup --system kaniko && adduser --system --ingroup kaniko kaniko && \
mkdir -p /workspace && chown -R kaniko:kaniko /workspace && \
chown -R kaniko:kaniko /kaniko
# 비루트 사용자 생성
RUN useradd -m -u 1000 kaniko
# PATH 설정
# 권한 부여
RUN mkdir -p /workspace && \
chown -R kaniko:kaniko /workspace /kaniko && \
chmod -R g+rw /workspace /kaniko
# 실행 환경
ENV PATH="/kaniko:$PATH"
ENV HOME=/workspace
# 보안: 작업 디렉토리 설정
WORKDIR /workspace
# 보안: 루트 권한 제거
USER kaniko
# ENTRYPOINT 설정
ENTRYPOINT ["/kaniko/executor"]