feat(deploy): 正式環境部署設定

- frontend/api.js: API URL 自動判斷 (localhost=dev, 其他=相對路徑 /api/v1)
- main.py: 加入 StaticFiles 掛載 admin-portal,CORS 開放
- schedule_tenant: Traefik 路由範本更新
  - 管理租戶加入 /api 路由 (priority 200)
  - /admin 加入 StripPrefix middleware
  - admin 服務改指向 vmis-backend:10281
- docker/vmis: 新增 Dockerfile + docker-compose.yml

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
VMIS Developer
2026-03-15 18:11:31 +08:00
parent 62baadb06f
commit 8eb3909ca9
5 changed files with 74 additions and 6 deletions

19
docker/vmis/Dockerfile Normal file
View File

@@ -0,0 +1,19 @@
FROM python:3.12-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
openssh-client \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY backend/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY backend/app ./app
COPY backend/alembic ./alembic
COPY backend/alembic.ini .
COPY frontend/admin-portal ./frontend
EXPOSE 10281
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "10281"]

View File

@@ -0,0 +1,19 @@
services:
vmis-backend:
build:
context: ../..
dockerfile: docker/vmis/Dockerfile
image: vmis-backend:latest
container_name: vmis-backend
restart: unless-stopped
env_file: .env
volumes:
- /home/porsche/.ssh:/root/.ssh:ro
networks:
- traefik-network
labels:
- "traefik.enable=false"
networks:
traefik-network:
external: true