

Dockerfile을 만들자.
- Gradle 빌드 jar 파일 생성 옵션
bootJar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE }
FROM ubuntu:24.04
Ubuntu:24.04와 같이 비어있는 OS 이미지가 아닌,openjdk:17-jdk-slim과 같이 아예 어느정도 준비된 이미지도 있으니 이를 활용할 수도 있다.
도커 주요 명령어

자주 헷갈리는 ARG와 ENV
Java 프로젝트 예시
# Ubuntu 24.04 이미지를 베이스 이미지로
FROM ubuntu:24.04
# Java 17 버전 설치
RUN apt-get update && apt-get install -y openjdk-17-jdk
# 컨테이너 안에 /app 디렉토리를 만들고, 여기를 기본 경로로 지정하기
WORKDIR /app
# 호스트의 ./build/libs/spring-demo.jar 파일을 컨테이너의 ./app.jar로 복사
COPY ./build/libs/spring-demo.jar ./app.jar
# 컨테이너가 실행되면 java -jar app.jar 명령어를 실행하도록 함
CMD ["java", "-jar", "app.jar"]
# 컨테이너가 8080 포트를 사용한다는 것을 명시
EXPOSE 8080
FROM ubuntu:24.04
RUN apt-get update && apt-get install -y python3 python3-pip python3-venv
RUN python3 -m venv /opt/venv
WORKDIR /app
COPY requirements.txt .
RUN /opt/venv/bin/pip install --upgrade pip
RUN /opt/venv/bin/pip install -r requirements.txt
COPY app.py .
CMD ["/opt/venv/bin/python", "app.py"]
EXPOSE 8000
FROM ubuntu:24.04
RUN apt-get update && apt-get install -y nodejs npm
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["npm", "start"]
EXPOSE 3000
docker build -t spring-demo-image .
-t 옵션은 이미지에 별명을 지어주는 옵션이다.docker scout quickviewdocker run -p 8001:8080 spring-demo-image
