Files

28 lines
1.1 KiB
Docker

# PocketBase 0.40.4 — the schema in pb_migrations is applied automatically on
# first boot, and the admin account is seeded from PB_SUPERUSER_EMAIL /
# PB_SUPERUSER_PASSWORD. Data persists in the mounted /pb_data volume.
FROM alpine:3.20
ARG PB_VERSION=0.40.4
# Docker BuildKit sets TARGETARCH (amd64/arm64) — matches PocketBase release assets.
ARG TARGETARCH
RUN apk add --no-cache curl ca-certificates unzip \
&& curl -fsSL -o /tmp/pocketbase.zip \
"https://github.com/pocketbase/pocketbase/releases/download/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_${TARGETARCH:-amd64}.zip" \
&& unzip /tmp/pocketbase.zip -d /usr/local/bin/ \
&& rm /tmp/pocketbase.zip \
&& chmod +x /usr/local/bin/pocketbase
WORKDIR /pb
COPY pb_migrations ./pb_migrations
# All app logic (validation + email) lives in the Express API, so no runtime
# hooks are required here — an empty hooks dir keeps startup clean.
RUN mkdir -p ./pb_hooks /pb_data
EXPOSE 8090
CMD ["pocketbase", "serve", "--http=0.0.0.0:8090", "--dir=/pb_data", "--migrationsDir=/pb/pb_migrations", "--hooksDir=/pb/pb_hooks", "--encryptionEnv=PB_ENCRYPTION_KEY"]