Bring the Docker setup in line with DriverVault's

The combined stack now includes PocketBase as a first-class service instead
of assuming an external one: a Docker/pocketbase image built from the release
binary that bundles the pb_migrations and upserts the superuser on boot, so a
fresh stack checks/creates its collections and super-admin the same way
DriverVault does. Add production compose variants (registry images) and
.env(.prod).example files for both Docker/ and Docker AIO/, a top-level compose
name, a PocketBase healthcheck with a service_healthy dependency, and
env-driven ports. Move the containerized PocketBase to :8070 (the live remote
PB stays 10.2.1.10:8026). Add a root .dockerignore to trim the repo-root build
context used by the pocketbase and AIO images.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
tajniak81andClaude Opus 4.8 committed 2026-07-19 19:16:21 +02:00
1 parent 11fb1e060d
commit 2d20f6f29c
13 files changed
+401 -32

No files matched your search

+5 -5
View File
@@ -8,10 +8,10 @@
# and "Web App/"). From E:\VS Code Projects\PilotVault run:
#
# docker build -f "Docker AIO/Dockerfile" -t pilotvault-aio .
# docker run -p 8090:8090 -p 8080:8080 -p 8026:8026 \
# docker run -p 8090:8090 -p 8080:8080 -p 8070:8070 \
# -v pilotvault_pb:/pb/pb_data pilotvault-aio
#
# Internal ports (loopback-wired): PocketBase 8026, API Server 8080, Web App 8090.
# Internal ports (loopback-wired): PocketBase 8070, API Server 8080, Web App 8090.
# =============================================================================
# Stage 1 — build the API Server's embedded Vue panel (-> internal/api/dist)
@@ -91,7 +91,7 @@ COPY ["API Server/pocketbase/pb_migrations/", "/pb/pb_migrations/"]
# Web App reads ADDR / API_BASE
# NOTE: these bundle default credentials for convenience — override at `docker run`.
ENV API_ADDR=":8080" \
POCKETBASE_URL="http://127.0.0.1:8026" \
POCKETBASE_URL="http://127.0.0.1:8070" \
CORS_ALLOW_ORIGINS="*" \
POCKETBASE_ADMIN_EMAIL="admin@dji.local" \
POCKETBASE_ADMIN_PASSWORD="djiadmin2026!" \
@@ -111,7 +111,7 @@ pidfile=/run/supervisord.pid
priority=10
directory=/pb
# Ensure the service-account superuser exists, then serve on the internal port.
command=/bin/sh -c "/app/pocketbase superuser upsert \"$POCKETBASE_ADMIN_EMAIL\" \"$POCKETBASE_ADMIN_PASSWORD\" --dir=/pb/pb_data ; exec /app/pocketbase serve --http=0.0.0.0:8026 --dir=/pb/pb_data --migrationsDir=/pb/pb_migrations"
command=/bin/sh -c "/app/pocketbase superuser upsert \"$POCKETBASE_ADMIN_EMAIL\" \"$POCKETBASE_ADMIN_PASSWORD\" --dir=/pb/pb_data ; exec /app/pocketbase serve --http=0.0.0.0:8070 --dir=/pb/pb_data --migrationsDir=/pb/pb_migrations"
autorestart=true
startsecs=3
stdout_logfile=/dev/stdout
@@ -145,6 +145,6 @@ EOF
# PocketBase data (SQLite). Mount a volume here to persist across restarts.
VOLUME ["/pb/pb_data"]
EXPOSE 8090 8080 8026
EXPOSE 8090 8080 8070
ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]