2026-05-31 13:40:36 +03:30
|
|
|
name: soroushasadi
|
|
|
|
|
|
2026-05-31 12:47:02 +03:30
|
|
|
services:
|
|
|
|
|
web:
|
|
|
|
|
build:
|
|
|
|
|
context: .
|
|
|
|
|
dockerfile: Dockerfile
|
|
|
|
|
args:
|
2026-06-01 07:46:56 +03:30
|
|
|
DOTNET_IMAGE: ${DOTNET_IMAGE:-mcr.microsoft.com/dotnet/aspnet:10.0-alpine}
|
|
|
|
|
SDK_IMAGE: ${SDK_IMAGE:-mcr.microsoft.com/dotnet/sdk:10.0-alpine}
|
2026-05-31 12:47:02 +03:30
|
|
|
image: soroushasadi-site:latest
|
|
|
|
|
container_name: soroushasadi-site
|
|
|
|
|
restart: unless-stopped
|
2026-06-01 08:43:23 +03:30
|
|
|
# Host port 3020 → container 3000. Port 3000 on the host is Gitea
|
|
|
|
|
# (git.soroushasadi.com proxies to :3000) — NEVER publish on 3000.
|
2026-05-31 12:47:02 +03:30
|
|
|
ports:
|
2026-06-01 08:43:23 +03:30
|
|
|
- "3020:3000"
|
2026-05-31 12:47:02 +03:30
|
|
|
environment:
|
2026-06-01 07:46:56 +03:30
|
|
|
ASPNETCORE_ENVIRONMENT: Production
|
|
|
|
|
DataDir: /data
|
|
|
|
|
ADMIN_PASSWORD: ${ADMIN_PASSWORD:?set ADMIN_PASSWORD}
|
|
|
|
|
RESEND_API_KEY: ${RESEND_API_KEY:-}
|
|
|
|
|
CONTACT_INBOX: ${CONTACT_INBOX:-}
|
|
|
|
|
CONTACT_FROM: ${CONTACT_FROM:-}
|
2026-05-31 12:47:02 +03:30
|
|
|
volumes:
|
|
|
|
|
- cms-data:/data
|
|
|
|
|
healthcheck:
|
2026-06-01 07:46:56 +03:30
|
|
|
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:3000/ || exit 1"]
|
2026-05-31 12:47:02 +03:30
|
|
|
interval: 30s
|
2026-05-31 13:40:36 +03:30
|
|
|
timeout: 10s
|
2026-05-31 12:47:02 +03:30
|
|
|
retries: 3
|
2026-06-01 07:46:56 +03:30
|
|
|
start_period: 20s
|
2026-05-31 12:47:02 +03:30
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
|
cms-data:
|