From 045d16b0abce57f4dc34f3d76808350ce68eeccc Mon Sep 17 00:00:00 2001 From: Guillaume Dorce Date: Wed, 10 Jan 2024 12:33:00 +0100 Subject: [PATCH] add Dockerfile to build astro and pocketbase --- Dockerfile | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..078c7c2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,43 @@ +# PocketBase Stage +FROM alpine:latest as pocketbase + +ARG PB_VERSION=0.20.5 + +RUN apk add --no-cache \ + unzip \ + ca-certificates + +# 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/ + +# Uncomment if you want to add migrations and hooks +# COPY ./pb_migrations /pb/pb_migrations +# COPY ./pb_hooks /pb/pb_hooks + +EXPOSE 8080 + +# Node Stage +FROM node:20-slim AS base +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +RUN corepack enable +COPY . /app +WORKDIR /app + +FROM base AS prod-deps +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile + +FROM base AS build +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile +RUN pnpm run build + +# Final Stage +FROM pocketbase + +# Copy built Node application to a directory in the PocketBase image +COPY --from=build /app/dist /pb/pb_public + +# Start PocketBase +CMD ["/pb/pocketbase", "serve", "--http=0.0.0.0:8080"] +