37 lines
1.3 KiB
Docker
37 lines
1.3 KiB
Docker
|
|
# myanime-backend — PocketBase, version-pinned from the official release.
|
||
|
|
#
|
||
|
|
# We download the official static binary from GitHub releases (rather than a
|
||
|
|
# third-party image) so the deploy is reproducible and easy to audit.
|
||
|
|
FROM alpine:3.20 AS fetch
|
||
|
|
|
||
|
|
# Bump this to upgrade PocketBase. Keep it in sync with the README.
|
||
|
|
ARG PB_VERSION=0.39.6
|
||
|
|
ARG TARGETARCH=amd64
|
||
|
|
|
||
|
|
RUN apk add --no-cache ca-certificates unzip wget \
|
||
|
|
&& wget -q "https://github.com/pocketbase/pocketbase/releases/download/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_${TARGETARCH}.zip" -O /tmp/pb.zip \
|
||
|
|
&& unzip /tmp/pb.zip -d /pb \
|
||
|
|
&& rm /tmp/pb.zip
|
||
|
|
|
||
|
|
FROM alpine:3.20
|
||
|
|
|
||
|
|
RUN apk add --no-cache ca-certificates \
|
||
|
|
&& adduser -D -H -u 10001 pb
|
||
|
|
|
||
|
|
COPY --from=fetch /pb/pocketbase /usr/local/bin/pocketbase
|
||
|
|
|
||
|
|
# Schema-as-code: migrations are baked in and auto-applied on serve.
|
||
|
|
COPY pb_migrations /pb_migrations
|
||
|
|
|
||
|
|
# Persist DB, uploaded files, and any admin-created migrations here. Create it
|
||
|
|
# owned by the runtime user so a fresh named volume inherits writable perms.
|
||
|
|
RUN mkdir -p /pb_data && chown pb /pb_data
|
||
|
|
VOLUME ["/pb_data"]
|
||
|
|
|
||
|
|
EXPOSE 8090
|
||
|
|
USER pb
|
||
|
|
|
||
|
|
# Coolify terminates TLS at Traefik; PocketBase listens plain on 8090 behind it.
|
||
|
|
ENTRYPOINT ["pocketbase"]
|
||
|
|
CMD ["serve", "--http=0.0.0.0:8090", "--dir=/pb_data", "--migrationsDir=/pb_migrations"]
|