Coolify
當服務使用 8000 3000 這種時,traefik 會出現 2026-Mar-27 05:14:29 2026-03-27T05:14:29Z ERR error="service \"api-gkm2zpl2acc7zs\" error: port is missing" container=api-gkm2zplmrpaf8963173b209f481ca6e3baefcefbf2e52607f8465 providerName=docker 就需要加上 expose: - "8000" 附上完整的 version: '3.8' services: web: build: context: . dockerfile: Dockerfile.web api: image: node:24-alpine environment: - DATABASE_URL=postgres://user:password@db:5432/mydb - REDIS_URL=redis://redis:6379 - SERVICE_URL_API_8000 expose: - "8000" command: > node -e " const http = require('http'); const server = http.createServer((req, res) => { res.setHeader('Access-Control-Allow-Origin', '*'); // 允許前端跨域 res.writeHead(200, { 'Content-Type': 'application/json' }); res.end(JSON.stringify({ status: 'success', message: 'API is working!', env: { db: process.env.DB_HOST, redis: process.env.REDIS_HOST } })); }); server.listen(8000, () => console.log('API listening on 8000')); " depends_on: - db - redis db: image: postgres:15-alpine environment: - POSTGRES_USER=user - POSTGRES_PASSWORD=password - POSTGRES_DB=mydb volumes: - db-data:/var/lib/postgresql/data redis: image: redis:7-alpine volumes: db-data: 基本上再連就能正確連接 ...