Pocketbase persistent data

asmirbelkicHOBBY

8 months ago

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"]

0 Replies

asmirbelkicHOBBY

8 months ago

4e78d088-677d-4ecb-ba7a-8eb3bd3bd174


8 months ago

what does --dir represent in this case?


asmirbelkicHOBBY

8 months ago

i think it represents the directory where PocketBase will store its data


8 months ago

have you tried /pb/pb_data ?


asmirbelkicHOBBY

8 months ago

i did not


asmirbelkicHOBBY

8 months ago

1280543635401867300


8 months ago

switch to the v2 runtime and then use target ports on your domain


asmirbelkicHOBBY

8 months ago

"then use target ports on your domain" what you mean


8 months ago

instead of me explaining, remove and re-add your domain after switching to the v2 runtime and you will see what i mean


asmirbelkicHOBBY

8 months ago

same


8 months ago

from your logs -

Error: unknown flag: --publicDir

asmirbelkicHOBBY

8 months ago

since it's the default folder i'll remove that


asmirbelkicHOBBY

8 months ago

should i do the same for --dir/pb_data ?


8 months ago

the template doesnt set a dir, so maybe omit that too


asmirbelkicHOBBY

8 months 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 ?


8 months ago

line 2 of your dockerfile


asmirbelkicHOBBY

8 months ago

ok now maybe the right path to the volume is /pb_data


8 months ago

I would first leave it at /pb/pb_data


asmirbelkicHOBBY

8 months ago

ok i redeploy to test it


asmirbelkicHOBBY

8 months ago

ok this path isn't working


8 months ago

what about pocket base have you changed anyway?


asmirbelkicHOBBY

8 months 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


8 months ago

can you try the pocket base template please


asmirbelkicHOBBY

8 months ago

the pocketbase template works fine but i have a custom main.go pocketbase code


8 months ago

you have no issues with data persistence using the template, correct?


asmirbelkicHOBBY

8 months ago

yep


8 months ago

okay then it's something you are misconfiguring


8 months ago

please send the GitHub repo for your pocketbase


asmirbelkicHOBBY

8 months ago

Im doing the test again with volume on /pb_data.


8 months ago

going forward let's leave the volume mounted to /pb/pb_data as that's what the template has the volume mounted to


asmirbelkicHOBBY

8 months ago

F…. it's same… both are not working


8 months ago

^


asmirbelkicHOBBY

8 months ago


asmirbelkicHOBBY

8 months ago

Can't understand what is causing the issue….


8 months ago

then I'm unsure, all I have for you right now is that something you have done is misconfigured.


Pocketbase persistent data - Railway Help Station