컨테이너·워크플로우 자동화/DocKer 기본 및 활용

Docker Compose에서 build와 --build의 차이 이해하기

Data Jun 2025. 10. 12. 17:03

Docker Compose를 사용할 때,
compose.yml 파일 안에 build: 옵션을 사용하거나
명령 실행 시 --build 플래그를 붙이는 경우가 있습니다.

 

이 두 가지는 비슷해 보이지만, 역할과 실행 시점이 다릅니다.
이번 글에서는 그 차이를 간단히 정리해보겠습니다

 

build: 옵션 — 이미지 빌드 설정

build:는 Dockerfile이 있는 디렉터리를 지정
이미지를 처음부터 빌드할 때 사용합니다.

 

예시 — compose.yml

services:
  my-server:
    build: .
    ports:
      - "8080:8080"

여기서 build: .은 현재 디렉터리 즉 compose.yml 파일을 기준으로 (.)에 있는 Dockerfile을 사용해
이미지를 생성하겠다는 의미입니다.

 

즉, docker build . 명령어를 Compose 안에서 자동으로 처리해주는 역할이죠.

 

--build 플래그 — 이미지 재빌드 강제

이미 한 번 이미지를 빌드한 후에는
docker compose up -d를 실행해도 기존 이미지가 그대로 사용됩니다.

 

하지만 Dockerfile이 수정되었거나 새 설정을 반영하고 싶을 때는
다음처럼 --build 옵션을 추가합니다 👇

$ docker compose up -d --build

이 명령은 “기존 이미지가 있더라도 다시 빌드하고 실행하라”는 의미입니다.

 

 

정리하면

구분 역할 실행 시점 예시
build: Compose 파일에서 빌드 경로 지정 최초 설정 build: .
--build 기존 이미지 강제로 재빌드 실행 시 docker compose up -d --build

Compose를 사용할 때,
“Dockerfile 수정 후에도 반영이 안 된다면?” → --build를 붙여보세요