Pocketbase persistent data
asmirbelkic
HOBBYOP

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

35 Replies

asmirbelkic
HOBBYOP

2 years ago

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


2 years ago

what does --dir represent in this case?


asmirbelkic
HOBBYOP

2 years ago

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


2 years ago

have you tried /pb/pb_data ?


asmirbelkic
HOBBYOP

2 years ago

i did not


asmirbelkic
HOBBYOP

2 years ago

1280543635401867300


2 years ago

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


asmirbelkic
HOBBYOP

2 years ago

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


2 years ago

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


asmirbelkic
HOBBYOP

2 years ago

same


2 years ago

from your logs -

Error: unknown flag: --publicDir

asmirbelkic
HOBBYOP

2 years ago

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


asmirbelkic
HOBBYOP

2 years ago

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


2 years ago

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


asmirbelkic
HOBBYOP

2 years 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 ?


2 years ago

line 2 of your dockerfile


asmirbelkic
HOBBYOP

2 years ago

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


2 years ago

I would first leave it at /pb/pb_data


asmirbelkic
HOBBYOP

2 years ago

ok i redeploy to test it


asmirbelkic
HOBBYOP

2 years ago

ok this path isn't working


2 years ago

what about pocket base have you changed anyway?


asmirbelkic
HOBBYOP

2 years 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


2 years ago

can you try the pocket base template please


asmirbelkic
HOBBYOP

2 years ago

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


2 years ago

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


asmirbelkic
HOBBYOP

2 years ago

yep


2 years ago

okay then it's something you are misconfiguring


2 years ago

please send the GitHub repo for your pocketbase


asmirbelkic
HOBBYOP

2 years ago

Im doing the test again with volume on /pb_data.


2 years ago

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


asmirbelkic
HOBBYOP

2 years ago

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


2 years ago

^


asmirbelkic
HOBBYOP

2 years ago


asmirbelkic
HOBBYOP

2 years ago

Can't understand what is causing the issue….


2 years ago

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


Loading...