Maxima's Lab

[Docker] Docker-Compose를 활용해서 MariaDB, Flask, Vue.js 연동하는 방법 본문

Docker

[Docker] Docker-Compose를 활용해서 MariaDB, Flask, Vue.js 연동하는 방법

Minima 2024. 4. 2. 21:41
728x90
SMALL

안녕하세요, 오늘은 Docker-Compose를 활용해서 MariaDB, Flask Server, Vue.js Server를 연동하는 방법에 대해서 알아보겠습니다.

 

먼저, docker-compose.yml 파일에 대해서 알아보겠습니다.

 

version: '3.8'

services:

  flask-app:
    build: ./flask
    ports:
      - "4000:4000"
    environment:
      - DATABASE_HOST=mariadb
      - DATABASE_USER=exampleUser
      - DATABASE_PASSWORD=exampleUserPassword
    volumes:
      - ./flask:/app
    networks:
    - server_network

  vue-app:
    build: ./vue-practice
    ports:
      - "8080:8080"
    volumes:
      - ./vue-practice:/app
    environment:
      - CHOKIDAR_USEPOLLING=true
    networks:
    - server_network

  mariadb:
    image: mariadb:latest
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=exampleRootPassword
      - MYSQL_DATABASE=exampleDatabase
      - MYSQL_USER=exampleUser
      - MYSQL_PASSWORD=exampleUserPassword
    ports:
      - "3306:3306"
    volumes:
      - ./data:/var/lib/mysql
    networks:
    - server_network

networks:
  server_network:

 

디렉토리 구조 시각화 결과

 

위의 docker-compose.yml 파일에 대해 대응되는 디렉토리 구조 시각화 결과는 위의 이미지를 참고해주시면 됩니다.

이이서, docker-compose.yml 파일을 단계적으로 설명드리겠습니다.

 


 

  flask-app:
    build: ./flask
    ports:
      - "4000:4000"
    environment:
      - DATABASE_HOST=mariadb
      - DATABASE_USER=exampleUser
      - DATABASE_PASSWORD=exampleUserPassword
    volumes:
      - ./flask:/app
    networks:
    - server_network

 

위의 코드는 service 이름이 flask-app이며, ./flask 폴더 내의 Dockerfile를 활용해서 Build 작업을 진행합니다. 또한, Database는 mariadb (Service)를 사용하게 됩니다. 나머지는, volume과 networks에 대한 설정 등 입니다.

 


  vue-app:
    build: ./vue-practice
    ports:
      - "8080:8080"
    volumes:
      - ./vue-practice:/app
    environment:
      - CHOKIDAR_USEPOLLING=true
    networks:
    - server_network

 

위의 코드는 flask-app과 유사하지만 port 번호가 상이하며 나머지는 유사하게 적용된 것을 확인할 수 있습니다. 

 


  mariadb:
    image: mariadb:latest
    restart: always
    environment:
      - MARIADB_ROOT_PASSWORD=exampleRootPassword
      - MARIADB_DATABASE=exampleDatabase
      - MARIADB_USER=exampleUser
      - MARIADB_PASSWORD=exampleUserPassword
    ports:
      - "3306:3306"
    volumes:
      - ./data:/var/lib/mysql
    networks:
    - server_network

networks:
  server_network:

 

마지막으로, mariadb (Service)에 대한 설명입니다. 해당 Service를 위해서 Docker Image는 mariadb:latest를 사용하였지만 호환성을 위해서는 구체적인 tag를 지정하는 것을 추천드립니다.

 

flask-app (Service)에서도 보셨듯이, Database 관련 Password, Database 등의 설정을 맞춰주셔야 합니다. 마찬가지로 나머지는 volume과 networks 관련 정보가 되겠습니다.

 


이상으로, Docker-Compose를 활용하여 MariaDB, Flask, Vue.js Server를 연동하는 방법에 대해서 알아보았습니다.

감사드립니다.

728x90
LIST
Comments