일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- vue.js
- 논문 리뷰
- Web Programming
- POD
- Django
- 컴퓨터 비전
- FLASK
- 장고
- GUI
- Tkinter
- k8s
- Python
- 그래픽 유저 인터페이스
- 파이토치
- Docker
- OpenCV
- Computer Vision
- paper review
- 딥러닝
- 파이썬
- MariaDB
- 웹 프로그래밍
- pytorch
- kubernetes
- 텐서플로우
- tensorflow
- numpy
- yaml
- Deep Learning
- 데이터베이스
- Today
- Total
Maxima's Lab
[Docker] Docker-Compose를 활용해서 MariaDB, Flask, Vue.js 연동하는 방법 본문
안녕하세요, 오늘은 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를 연동하는 방법에 대해서 알아보았습니다.
감사드립니다.
'Docker' 카테고리의 다른 글
[Docker] Docker를 활용하여 Jenkins 사용하는 방법 (CI/CD) (0) | 2024.04.18 |
---|---|
[Docker] Docker Image 분할 압축 및 해제 방법 (0) | 2024.04.17 |
[Docker] Docker-Compose를 활용한 WordPress 배포하는 방법 (0) | 2024.03.27 |
[Docker] Docker-Compose를 사용해서 Vue.js & Flask Server 연동하는 방법 (0) | 2024.03.21 |
[Docker] NVIDIA Container Toolkit 설치하는 방법 (0) | 2024.02.27 |