[PIE-1] add api docker files
This commit is contained in:
25
api/Dockerfile
Normal file
25
api/Dockerfile
Normal file
@@ -0,0 +1,25 @@
|
||||
FROM alpine:latest
|
||||
|
||||
ARG PB_VERSION=0.29.2
|
||||
ENV PB_DATA_DIR=/pb_data
|
||||
|
||||
WORKDIR /pb
|
||||
|
||||
RUN apk add --no-cache \
|
||||
unzip \
|
||||
curl \
|
||||
ca-certificates \
|
||||
bash
|
||||
|
||||
# download and unzip PocketBase
|
||||
ADD https://github.com/pocketbase/pocketbase/releases/download/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_amd64.zip /tmp/pb.zip
|
||||
RUN unzip /tmp/pb.zip -d /pb/
|
||||
|
||||
# copy entrypoint
|
||||
COPY docker-entrypoint.sh /usr/local/bin/
|
||||
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||
CMD ["serve", "--http=0.0.0.0:8080"]
|
||||
27
api/docker-entrypoint.sh
Normal file
27
api/docker-entrypoint.sh
Normal file
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# Required env-vars
|
||||
: "${PB_ADMIN_EMAIL:?need PB_ADMIN_EMAIL}"
|
||||
: "${PB_ADMIN_PASSWORD:?need PB_ADMIN_PASSWORD}"
|
||||
: "${PB_DATA_DIR:?need PB_DATA_DIR}"
|
||||
|
||||
# ensure data dir exists (for embedded SQLite + migrations + files)
|
||||
mkdir -p "${PB_DATA_DIR}"
|
||||
export POCKETBASE_DATA_DIR="${PB_DATA_DIR}"
|
||||
|
||||
# if there are no users yet, create the superuser
|
||||
# we check the sqlite file for any existing record in the users table
|
||||
if [ ! -f "${PB_DATA_DIR}/pb_data.db" ] || ! \
|
||||
sqlite3 "${PB_DATA_DIR}/pb_data.db" \
|
||||
"SELECT id FROM users WHERE email='${PB_ADMIN_EMAIL}' LIMIT 1;" \
|
||||
| grep -q .; then
|
||||
|
||||
echo ">>> Creating PocketBase superuser: ${PB_ADMIN_EMAIL}"
|
||||
/pb/pocketbase superuser create "${PB_ADMIN_EMAIL}" "${PB_ADMIN_PASSWORD}"
|
||||
else
|
||||
echo ">>> Superuser ${PB_ADMIN_EMAIL} already exists, skipping creation."
|
||||
fi
|
||||
|
||||
# exec the real pocketbase binary with any passed arguments
|
||||
exec /pb/pocketbase "$@"
|
||||
Reference in New Issue
Block a user