跳到內容

Compose 部署

Docker Compose 部署適合需要多個服務協作的應用,例如 Web 應用搭配資料庫與快取服務。你只需提供一份 docker-compose.yml 檔案,Piora 就能完成整個堆疊的部署。

  1. 在 Piora 控制面板建立新應用
  2. 選擇「Docker Compose」作為部署方式
  3. 貼上或上傳你的 docker-compose.yml
version: "3.8"
services:
web:
image: node:20-alpine
working_dir: /app
volumes:
- ./:/app
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://piora:secret@db:5432/myapp
REDIS_URL: redis://cache:6379
depends_on:
- db
- cache
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: piora
POSTGRES_PASSWORD: secret
POSTGRES_DB: myapp
volumes:
- postgres_data:/var/lib/postgresql/data
cache:
image: redis:7-alpine
volumes:
- redis_data:/data
volumes:
postgres_data:
redis_data:
設定說明
imageDocker 映像名稱與標籤
build從 Dockerfile 建置的設定
ports連接埠映射
environment環境變數
volumes持久化儲存
depends_on服務啟動順序
restart重啟策略
deploy部署相關設定(副本數、資源限制)

你可以在 Compose 檔案中為每個服務設定資源限制:

services:
web:
image: node:20-alpine
deploy:
resources:
limits:
cpus: "1.0"
memory: 512M
reservations:
cpus: "0.25"
memory: 128M
services:
web:
environment:
- NODE_ENV=production
- PORT=3000

你也可以在 Piora 控制面板中設定環境變數,這些變數會覆蓋 Compose 檔案中的定義。這對於需要在不同環境使用不同值的機敏資訊特別有用。

在控制面板中可以看到 Compose 堆疊中每個服務的狀態、日誌與資源使用量。

你可以針對 Compose 中的個別服務進行:

  • 重啟單一服務
  • 查看服務日誌
  • 調整資源配置
  • 進入容器 Shell

修改 Compose 檔案後,在控制面板中重新部署即可。Piora 會智慧判斷哪些服務需要更新,盡量減少不必要的重啟。

version: "3.8"
services:
wordpress:
image: wordpress:6-apache
ports:
- "80:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wp
WORDPRESS_DB_PASSWORD: secret
WORDPRESS_DB_NAME: wordpress
volumes:
- wp_data:/var/www/html
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: rootsecret
MYSQL_DATABASE: wordpress
MYSQL_USER: wp
MYSQL_PASSWORD: secret
volumes:
- db_data:/var/lib/mysql
volumes:
wp_data:
db_data: