[Docker] ONBUILD

2025. 6. 12. 01:41·virtual environment/Docker

ONBUILD

"하위 Dockerfile에서 자동으로 실행될 명령어를 상위 이미지에서 미리 설정”

 개요

  • 부모 이미지에서 설정한 명령어가 해당 이미지를 기반으로 빌드하는 하위 Dockerfile에서 자동 실행
  • 주로 공통 빌드 로직이 필요한 템플릿 이미지나, 프레임워크 기반 베이스 이미지 제작에 유용

예시

베이스 이미지 (예: my-node-base)

# base-image/Dockerfile
FROM node:18
WORKDIR /app
ONBUILD COPY . /app
ONBUILD RUN npm install
  • 이 이미지를 기반으로 하는 모든 하위 Dockerfile에서는,
    • COPY . /app
    • RUN npm install
    • 이 두 명령이 자동으로 실행

하위 이미지

# app/Dockerfile
FROM my-node-base
CMD ["npm", "start"]
  • COPY, RUN을 직접 작성하지 않아도 자동 실행됨.
  • ✅ 하위 이미지에서 실수로 누락하거나 일관성 잃는 일 방지.

주의사항

항목 설명

🔁 중복 실행 금지 ONBUILD는 명령어 1회성 실행이며, 하위 Dockerfile에서 명시하면 중복 실행되지는 않음
🧱 이미지 재사용 주의 하위 이미지가 많아질 경우, 원치 않는 동작이 자동 실행되어 디버깅이 어려워질 수 있음
🔒 보안상 주의 무심코 실행되는 코드로 인해 예상치 못한 동작 가능 → 외부 이미지 기반 시에는 ONBUILD를 항상 확인할 것

개념 정리 요약

                기능                                          개념                                                                           장점

🔁 Multi-Stage Build 빌드 환경과 실행 환경을 분리하여 최종 이미지를 경량화 실행에 필요한 최소 구성만 유지 → 보안, 성능 향상
📁 .dockerignore Docker build context에서 제외할 파일 지정 빌드 속도 향상, 보안 강화, 이미지 사이즈 절감
⚙️ ARG 빌드 타임에 주입 가능한 변수 정의 유연한 빌드 설정, 외부 값 주입 가능
🧬 ONBUILD 하위 이미지에서 자동 실행될 명령어 미리 지정 일관된 템플릿 환경 제공, 하위 Dockerfile의 단순화
저작자표시 비영리 변경금지 (새창열림)

'virtual environment > Docker' 카테고리의 다른 글

Docker 명령어 모음  (0) 2025.06.12
[Dockerfile] ARG (Build-time 변수)  (0) 2025.06.12
.dockerignore  (0) 2025.06.12
Dockerfile Multi-Stage Build  (0) 2025.06.12
DevContainer를 이용한 VS Code 개발 환경 구성 (Docker 기반)  (0) 2025.06.12
'virtual environment/Docker' 카테고리의 다른 글
  • Docker 명령어 모음
  • [Dockerfile] ARG (Build-time 변수)
  • .dockerignore
  • Dockerfile Multi-Stage Build
yoon-k
yoon-k
  • yoon-k
    To be || Not To be
    yoon-k
  • 전체
    오늘
    어제
    • 분류 전체보기 (84)
      • Study (13)
        • Linux (6)
        • Computer Vision (1)
        • Coursera - Deep Learning (4)
        • Mathematics For Machine Lea.. (2)
      • Programming (12)
        • Python (2)
        • ETC. (10)
      • virtual environment (44)
        • Docker (29)
        • conda (4)
        • Cloud (11)
      • Robotics (9)
        • Jetson (7)
        • ROS (2)
      • Upstage (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    OpenAI
    Jetson
    오린
    ORiN
    Installation
    LLM
    vscode
    docker
    coursera
    도커
    ambassador
    nvidia
    API
    Deep Learning
    google cloud platform
    Andrew Ng
    conda
    redeem code
    Solar
    claude code
    futureofwork
    Miniconda
    cursor
    Anaconda
    딥러닝
    claude
    upstage
    GCP
    업스테이지
    코세라
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
yoon-k
[Docker] ONBUILD
상단으로

티스토리툴바