[Docker] 이미지 빌드카테고리 없음2024. 9. 10. 00:27
Table of Contents
<IaC(Infrastructure as Code)>
IaC는 코드로 인프라를 정의하고 관리하는 방식이다. 서버, 네트워크, 스토리지 등 인프라 리소스를 코드로 작성하여 자동으로 배포하고 설정할 수 있다. 대표적인 도구로는 Terraform, Ansible, CloudFormation 등이 있다. 이를 통해 인프라 환경을 일관되고 효율적으로 관리할 수 있다.
- 주요 목적: 서버, 네트워크, 데이터베이스 등 인프라의 생성과 관리를 자동화하고, 코드화하여 반복 가능하게 만드는 것이 목적이다.
<Docker 이미지 빌드>
Docker 이미지 빌드는 애플리케이션 실행 환경을 이미지로 패키징하는 과정이다.
애플리케이션 코드, 라이브러리, 종속성 등을 포함한 환경을 Dockerfile로 정의하고, 이를 통해 이미지를 빌드하여 컨테이너를 실행할 수 있다. Docker 이미지는 애플리케이션이 어디서든 일관되게 실행될 수 있도록 한다.
- 주요 목적: 애플리케이션 실행 환경을 일관되게 정의하고 패키징하여 어디서나 실행 가능한 상태로 만드는 것이 목적이다.
이미지 빌드
Dockerfile 작성
# 베이스 이미지로 OpenJDK 17 사용
FROM openjdk:17-jdk
# 애플리케이션을 위한 작업 디렉토리 설정
WORKDIR /spring-boot
# 빌드된 JAR 파일을 컨테이너로 복사
COPY build/libs/*SNAPSHOT.jar app.jar
# 애플리케이션 실행
ENTRYPOINT ["java", "-jar", "/spring-boot/app.jar"]
이미지 빌드
-f 도커파일명:
- 빌드에 사용할 Dockerfile의 이름을 지정한다. 기본적으로 Docker는 Dockerfile이라는 파일명을 사용하지만, 다른 이름의 Dockerfile을 사용할 경우 -f 옵션으로 명시할 수 있다.
- 예: -f custom.Dockerfile → custom.Dockerfile을 사용하여 빌드.
빌드 컨텍스트란 도커 파일이 위치한 폴더(디렉터리)를 뜻함.
명령어 마지막의 . 은 빌드 컨텍스트를 의미함
.dockerignore
도커 이미지를 만들 때 포함하고 싶지 않은 파일을 지정 가능하다.
빌드 컨텍스트에 .dockerignore 파일에 "파일 이름.확장자" 를 입력하면 이미지 빌드에서 제외된다.
한 개 또는 여러개의 파일 리스트를 .dockerigrnoe 파일에 입력할 수 있다.