Docker
Dockerfile 내용 순서
수색…
비고
- 기본 이미지 선언 (
FROM
) - 메타 데이터 (예 :
MAINTAINER
,LABEL
) - 시스템 의존성 설치 (예 :
apt-get install
,apk add
) - 응용 프로그램 종속성 파일 복사 (예 :
bower.json
,package.json
,build.gradle
,requirements.txt
) - 응용 프로그램 종속성 설치 (예 :
npm install
,pip install
) - 전체 코드베이스 복사하기
- 기본 런타임 구성 설정 (예 :
CMD
,ENTRYPOINT
,ENV
,EXPOSE
)
이 순서는 Docker에 내장 된 캐싱 메커니즘을 사용하여 빌드 시간을 최적화하기 위해 만들어졌습니다.
엄지 손가락의 규칙 :
자주 변경되는 부분 (예 : 코드베이스)은 Dockerfile의 맨 아래에 배치해야하며 그 반대의 경우도 마찬가지입니다. 거의 변하지 않는 부품 (예 : 의존성)은 맨 위에 놓아야합니다.
단순한 Dockerfile
# Base image FROM python:2.7-alpine # Metadata MAINTAINER John Doe <[email protected]> # System-level dependencies RUN apk add --update \ ca-certificates \ && update-ca-certificates \ && rm -rf /var/cache/apk/* # App dependencies COPY requirements.txt /requirements.txt RUN pip install -r /requirements.txt # App codebase WORKDIR /app COPY . ./ # Configs ENV DEBUG true EXPOSE 5000 CMD ["python", "app.py"]
MAINTAINER는 Docker 1.13에서 더 이상 사용되지 않으며 LABEL을 사용하여 대체해야합니다. ( 출처 )
예 : LABEL Maintainer = "John Doe [email protected]"
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow