본문 바로가기
IT&DEV - IT & 개발/ETC

Docker환경에 springboot+mysql 구동 - portainer 활용

by Hoft 2025. 3. 11.
728x90
반응형

Portainer를 사용하고 있다면 Portainer에서 직접 docker-compose.yml을 적용할 수 있습니다.


🔹 Portainer에서 Docker Compose 적용 방법

Portainer는 웹 UI에서 docker-compose.yml을 직접 배포할 수 있도록 지원합니다.

1️⃣ Portainer에 로그인 후 Stacks 메뉴로 이동

  1. Portainer 웹 UI에 접속 (http://your-server-ip:9000)
  2. 왼쪽 메뉴에서 "Stacks" 선택
  3. "Add stack" 클릭

2️⃣ docker-compose.yml 내용 입력

  1. Stack Name 입력 (예: auto-trading-stack)
  2. Web editor에서 docker-compose.yml 내용 복사 & 붙여넣기

📌 업데이트된 docker-compose.yml (Portainer용)

version: '3.8'

networks:
  MyNet:
    external: true

services:
  app:
    build: ./app
    container_name: springboot_app
    restart: always
    depends_on:
      - db
    environment:
      - SPRING_DATASOURCE_URL=jdbc:mysql://db:3306/mydatabase
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=rootpassword
    ports:
      - "8080:8080"
    networks:
      MyNet:
        ipv4_address: 172.20.0.50

  db:
    image: mysql:8.0
    container_name: mysql_db
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=rootpassword
      - MYSQL_DATABASE=mydatabase
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql
    networks:
      MyNet:
        ipv4_address: 172.20.0.60

volumes:
  mysql_data:

3️⃣ 네트워크(MyNet) 미리 생성하기

Portainer에서 external: true로 설정된 네트워크는 미리 만들어줘야 해요.
Portainer "Networks" 메뉴에서 직접 만들거나, SSH로 접속해서 다음 명령어 실행:

docker network create \
  --subnet=172.20.0.0/16 \
  MyNet

4️⃣ Deploy the stack 클릭하여 실행

📌 배포 후 확인 방법

  • "Containers" 메뉴에서 springboot_appmysql_db 컨테이너가 정상적으로 실행되는지 확인
  • "Networks"에서 MyNet 네트워크에 컨테이너가 연결되었는지 확인

🛠 추가 작업 (Spring Boot Dockerfile 필요)

Portainer는 build: ./app을 사용할 때 Git 또는 로컬 파일이 필요하므로,
Spring Boot용 Dockerfile을 따로 준비해야 합니다.

📌 app/ 폴더 내부에 Dockerfile 생성

FROM openjdk:17
WORKDIR /app
COPY target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
  • Spring Boot 프로젝트를 빌드해서 target/에 JAR 파일을 넣은 후 실행해야 함
  • Portainer에서 "Upload from Git" 기능을 사용하면 Git에서 직접 가져올 수도 있음

✅ 정리

  1. Portainer → "Stacks" → "Add Stack"
  2. docker-compose.yml 붙여넣고 "Deploy the Stack" 클릭
  3. Portainer에서 네트워크, 컨테이너 정상 실행 확인
  4. Spring Boot 프로젝트의 Dockerfile 준비 및 빌드

 

728x90
반응형

댓글