Docker image 생성 후 Container만들기

wondi·2025년 2월 3일

인프라구축/CI&CD

목록 보기
10/10

Docker image 만들기

감자상회의 dockerfile을 작성해보았다.

FROM openjdk:21-jdk
WORKDIR /app
ARG JAR_FILE=potatocountry/build/libs/potatocountry-0.0.1-SNAPSHOT.jar
COPY ${JAR_FILE} .
EXPOSE 8080
ENTRYPOINT ["java","-jar","potatocㄱountry-0.0.1-SNAPSHOT.jar"]
  • FROM openjdk:21-jdk
    • OpenJDK 21 기반의 컨테이너 이미지를 사용함
  • WORKDIR /app
    • 작업 디렉토리를 /app으로 설정
  • ARG JAR_FILE=potatocountry/build/libs/potatocountry-0.0.1-SNAPSHOT.jar
    • 빌드된 JAR 파일을 컨테이너 내부 /app 디렉토리로 복사
  • COPY ${JAR_FILE} .
    • 지정된 JAR 파일을 컨테이너 내부 /app 디렉토리로 복사
  • EXPOSE 8080
    • 컨테이너의 8080 포트를 개방
  • ENTRYPOINT ["java","-jar","potatocountry-0.0.1-SNAPSHOT.jar"]
    • 컨테이너가 시작될 때 실행할 명령어 지정

Docker-compose.yml 작성하기

version: '3.8'

services:
  backend:
    image: potato-chips
    container_name: potato_chip
    ports:
      - "8081:8080"
    depends_on:
      - redis
      - mysql
    networks:
      - backend
      - frontend

  frontend:
    image: potatochipfront
    container_name: potato_chip_front
    ports:
      - "5174:5174"
    environment:
      - VITE_API_URL=http://backend:8081
      - HOST=0.0.0.0
    networks:
      - frontend

  redis:
    image: "redis:7"
    container_name: redis_server
    ports:
      - "6379:6379"
    networks:
      - backend

  mysql:
    image: "mysql:8"
    container_name: mysql_server
    restart: always
    ports:
      - "3306:3306"
    networks:
      - backend


networks:
  backend:
    driver: bridge
  frontend:
    driver: bridge
profile
Developer Wondi

0개의 댓글