R
Railway2mo ago
Mirsa

Pocketbase persistent data

I deployed a custom version of pocketbase, and i created a volume at /pb_data but i have an issue with the persistence isn't working, i guess it's a problem with the path/directory.
# Use the official Go image to build the PocketBase binary
FROM golang:1.21-alpine AS builder

# Set the working directory
WORKDIR /app

# Copy go mod and sum files
COPY go.mod go.sum ./

# Download all dependencies
RUN go mod download

# Copy the source code into the container
COPY . .

# Build the PocketBase application
RUN CGO_ENABLED=0 GOOS=linux go build -o pocketbase .

# Start a new stage from scratch
FROM alpine:latest

# Install necessary packages
RUN apk add --no-cache ca-certificates

# Set the working directory
WORKDIR /pb

ENV PORT=8080

# Expose port 8080
EXPOSE 8080

# Copy the binary from the builder stage
COPY --from=builder /app/pocketbase /usr/local/bin/pocketbase

# Command to run PocketBase
CMD ["/usr/local/bin/pocketbase", "serve", "--http=0.0.0.0:8080", "--dir=/pb_data", "--publicDir=/pb_public"]
# Use the official Go image to build the PocketBase binary
FROM golang:1.21-alpine AS builder

# Set the working directory
WORKDIR /app

# Copy go mod and sum files
COPY go.mod go.sum ./

# Download all dependencies
RUN go mod download

# Copy the source code into the container
COPY . .

# Build the PocketBase application
RUN CGO_ENABLED=0 GOOS=linux go build -o pocketbase .

# Start a new stage from scratch
FROM alpine:latest

# Install necessary packages
RUN apk add --no-cache ca-certificates

# Set the working directory
WORKDIR /pb

ENV PORT=8080

# Expose port 8080
EXPOSE 8080

# Copy the binary from the builder stage
COPY --from=builder /app/pocketbase /usr/local/bin/pocketbase

# Command to run PocketBase
CMD ["/usr/local/bin/pocketbase", "serve", "--http=0.0.0.0:8080", "--dir=/pb_data", "--publicDir=/pb_public"]
33 Replies
Percy
Percy2mo ago
Project ID: 4e78d088-677d-4ecb-ba7a-8eb3bd3bd174
Mirsa
Mirsa2mo ago
4e78d088-677d-4ecb-ba7a-8eb3bd3bd174
Brody
Brody2mo ago
what does --dir represent in this case?
Mirsa
Mirsa2mo ago
i think it represents the directory where PocketBase will store its data
Brody
Brody2mo ago
have you tried /pb/pb_data ?
Mirsa
Mirsa2mo ago
i did not
Mirsa
Mirsa2mo ago
No description
Brody
Brody2mo ago
switch to the v2 runtime and then use target ports on your domain
Mirsa
Mirsa2mo ago
"then use target ports on your domain" what you mean
Brody
Brody2mo ago
instead of me explaining, remove and re-add your domain after switching to the v2 runtime and you will see what i mean
Mirsa
Mirsa2mo ago
same
Brody
Brody2mo ago
from your logs -
Error: unknown flag: --publicDir
Error: unknown flag: --publicDir
Mirsa
Mirsa2mo ago
since it's the default folder i'll remove that should i do the same for --dir/pb_data ?
Brody
Brody2mo ago
the template doesnt set a dir, so maybe omit that too
Mirsa
Mirsa2mo ago
meh.. 0.056 go: go.mod requires go >= 1.22 (running go 1.21.13; GOTOOLCHAIN=local) I need go minimal 1.22 how to update this in docker image ?
Brody
Brody2mo ago
line 2 of your dockerfile
Mirsa
Mirsa2mo ago
ok now maybe the right path to the volume is /pb_data
Brody
Brody2mo ago
I would first leave it at /pb/pb_data
Mirsa
Mirsa2mo ago
ok i redeploy to test it ok this path isn't working
Brody
Brody2mo ago
what about pocket base have you changed anyway?
Mirsa
Mirsa2mo ago
Okey with pb/pb_data did - i updated it deployed - backup my data - tested the data persistence with a redeploy But everything got erased
Brody
Brody2mo ago
can you try the pocket base template please
Mirsa
Mirsa2mo ago
the pocketbase template works fine but i have a custom main.go pocketbase code
Brody
Brody2mo ago
you have no issues with data persistence using the template, correct?
Mirsa
Mirsa2mo ago
yep
Brody
Brody2mo ago
okay then it's something you are misconfiguring please send the GitHub repo for your pocketbase
Mirsa
Mirsa2mo ago
Im doing the test again with volume on /pb_data.
Brody
Brody2mo ago
going forward let's leave the volume mounted to /pb/pb_data as that's what the template has the volume mounted to
Mirsa
Mirsa2mo ago
F.... it's same... both are not working
Brody
Brody2mo ago
^
Mirsa
Mirsa2mo ago
GitHub
GitHub - asmirbe/pocketbase
Contribute to asmirbe/pocketbase development by creating an account on GitHub.
Mirsa
Mirsa2mo ago
Can't understand what is causing the issue....
Brody
Brody2mo ago
then I'm unsure, all I have for you right now is that something you have done is misconfigured.
Want results from more Discord servers?
Add your server