-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
42 lines (39 loc) · 1.41 KB
/
docker-compose.yml
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
services:
app:
build:
context: . # Dockerfile 的位置(專案根目錄)
dockerfile: Dockerfile
container_name: fastapi-template-app
ports:
- "8000:8000" # 映射容器內的 8000 埠到本機
environment:
ENV: prod # 環境變數,指向正確的 .env 文件
TZ: Asia/Taipei # 設置時區
env_file:
- ./app/.env.prod # 指定環境變數文件
depends_on:
- db # 確保 MySQL 容器啟動後再啟動 app 容器
volumes:
- ./app/logs:/app/logs # 持久化日誌
networks:
- fastapi-template-net
db:
image: mariadb:10.5 # 使用官方 MariaDB 映像,兼容 MySQL
container_name: fastapi-template-db
ports:
- "0.0.0.0:3306:3306" # 映射容器內的 3306 埠到本機
environment:
MYSQL_ROOT_PASSWORD: rootpassword # MySQL 的 root 密碼
MYSQL_DATABASE: fastapi-template_db # 自動創建的資料庫
MYSQL_USER: fastapi-template_user # 資料庫用戶
MYSQL_PASSWORD: password # 資料庫用戶的密碼
TZ: Asia/Taipei # 設置時區
volumes:
- db_data:/var/lib/mysql # 持久化 MySQL 數據
networks:
- fastapi-template-net
volumes:
db_data: # 用於持久化 MySQL 數據
app_logs: # 用於持久化 app 日誌
networks:
fastapi-template-net: # 服務之間的自定義網路