| FROM alpine:latest | |
| ARG PB_VERSION=0.25.8 | |
| # Install required dependencies | |
| RUN apk add --no-cache \ | |
| unzip \ | |
| ca-certificates \ | |
| shadow # Needed for useradd | |
| # Set up a new user named "user" with user ID 1000 | |
| RUN useradd -m -u 1000 user | |
| # Set home to the user's home directory | |
| ENV HOME=/home/user \ | |
| PATH=/home/user/.local/bin:$PATH | |
| # Set the working directory to the user's home directory | |
| WORKDIR $HOME/app | |
| # Create necessary directories with correct permissions | |
| RUN mkdir -p $HOME/app /pb && chown -R user:user $HOME/app /pb | |
| # Switch to the "user" user | |
| USER user | |
| # Download and unzip PocketBase, ensuring correct ownership | |
| ADD --chown=user 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/ && rm /tmp/pb.zip | |
| # Uncomment to copy the local pb_migrations dir into the image | |
| # COPY --chown=user ./pb_migrations /pb/pb_migrations | |
| # Uncomment to copy the local pb_hooks dir into the image | |
| # COPY --chown=user ./pb_hooks /pb/pb_hooks | |
| EXPOSE 7860 | |
| # Start PocketBase | |
| CMD ["/pb/pocketbase", "serve", "--http=0.0.0.0:7860"] |