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.
49 lines
1.6 KiB
Plaintext
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
|