Files
Hy2026/docker-compose.yaml.example
T
Rafał Tyński 5598fa5156 build(docker): add container setup with persistent ./data volume
Add a multi-stage Dockerfile (Vue build + .NET 10 publish) and a docker-compose service exposing port 8080 with a single bind mount ./data -> /app/data for SurrealDB persistence. Include an example compose file, a .dockerignore, and document Docker usage and version 0.0.1 in the README.
2026-10-03 20:23:25 +02:00

49 lines
1.6 KiB
Plaintext

# TarninaHub — szablon docker-compose (wersja projektu 0.0.1)
#
# Użycie:
# cp docker-compose.yaml.example docker-compose.yaml
# docker compose up --build
#
# Aplikacja: http://localhost:8080
# Dane: ./data (bind mount, trwałe, SurrealDB embedded RocksDB)
name: tarninahub
services:
app:
# Obraz budowany lokalnie z Dockerfile (multi-stage: klient Vue + backend .NET).
image: tarninahub:${APP_VERSION:-0.0.1}
build:
context: .
dockerfile: Dockerfile
args:
APP_VERSION: ${APP_VERSION:-0.0.1}
container_name: tarninahub
restart: unless-stopped
# RocksDB zapisuje do bind-mountu ./data; root upraszcza uprawnienia (MVP).
# W produkcji użyj named volume albo dopasuj właściciela katalogu ./data.
user: "0:0"
ports:
- "${TARNINAHUB_PORT:-8080}:8080"
environment:
ASPNETCORE_ENVIRONMENT: Production
ASPNETCORE_URLS: http://+:8080
# SurrealDB — wbudowany silnik RocksDB (domyślnie), dane w /app/data.
SurrealDb__Namespace: hubmi
SurrealDb__Database: hubmi
SurrealDb__DataDirectory: data
# Tryb zdalny (opcjonalnie) — wskaż zewnętrzny serwer SurrealDB zamiast
# wbudowanego RocksDB. Wtedy usuń `user: "0:0"` i przekieruj port 8010.
# SurrealDb__RemoteUrl: ws://127.0.0.1:8010/rpc
# SurrealDb__Username: root
# SurrealDb__Password: root
volumes:
# Jedyny volumen aplikacji — trwałe dane (SurrealDB / RocksDB).
- ./data:/app/data
healthcheck:
test: ["CMD", "curl", "-fsS", "http://localhost:8080/api/health"]
interval: 30s
timeout: 5s
retries: 3
start_period: 20s