diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..ce414d5 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,57 @@ +# shot-crafter-calculator — Docker Compose +# +# Instalacion basica: +# docker compose pull # descarga la imagen :latest +# docker compose up -d # arranca en background +# docker compose logs -f # ver logs +# docker compose down # parar (los datos quedan en el volumen) +# docker compose down -v # parar y BORRAR volumen (pierde la DB) +# +# Ver la DB H2: +# docker compose exec shot-crafter ls -la /work/data +# docker compose exec shot-crafter cat /work/data/shots.trace.db # logs SQL +# +# Personalizacion via env vars (override con `docker compose run -e KEY=value` +# o definiendolas en un .env al lado de este archivo): +# - QUARKUS_DATASOURCE_JDBC_URL ruta de la DB (default: /work/data/shots.mv.db) +# - QUARKUS_HTTP_PORT puerto (default: 8080) +# - QUARKUS_HTTP_HOST bind interface (default: 0.0.0.0) +# - APP_AUTH_COOKIE_SECURE 'true' si va detras de HTTPS +# - APP_AUTH_COOKIE_NAME nombre de la cookie +# - MP_JWT_VERIFY_PUBLICKEY_LOCATION ruta a la clave publica RSA +# - SMALLRYE_JWT_SIGN_KEY_LOCATION ruta a la clave privada RSA +# +# Ver .env.example para la lista completa. +# +# Pin a version especifica (recomendado en produccion): +# image: gitea.danielarroyo.cl/proyectos/shot-crafter-calculator:1.0.0 +# o +# docker compose pull gitea.danielarroyo.cl/proyectos/shot-crafter-calculator@sha256:... + +services: + shot-crafter: + image: gitea.danielarroyo.cl/proyectos/shot-crafter-calculator:latest + container_name: shot-crafter + restart: unless-stopped + ports: + - "8080:8080" + environment: + QUARKUS_HTTP_HOST: 0.0.0.0 + QUARKUS_HTTP_PORT: 8080 + QUARKUS_DATASOURCE_JDBC_URL: jdbc:h2:file:/work/data/shots;DB_CLOSE_DELAY=-1 + APP_AUTH_COOKIE_SECURE: "false" + APP_AUTH_COOKIE_NAME: auth-token + volumes: + - shot-crafter-data:/work/data + healthcheck: + # La imagen native es PID 1. kill -0 chequea que sigue vivo + # sin mandar señal. Devuelve 0 si existe, 1 si no. + test: ["CMD-SHELL", "kill -0 1 || exit 1"] + interval: 30s + timeout: 5s + retries: 3 + start_period: 30s + +volumes: + shot-crafter-data: + name: shot-crafter-data \ No newline at end of file