Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chown /app/bbuddy/data: operation not permitted when /config is mounted in via NFS #33

Open
PyroDevil opened this issue Sep 18, 2024 · 0 comments

Comments

@PyroDevil
Copy link

PyroDevil commented Sep 18, 2024

For many of my apps, (grocy inclusive) I use NFS mounts to mount in the /config directory.

This works fine normally, when the target directory is owned by the same UID/GID as mentioned in the PUID and GUID variables. On the NFS server side, I also map all users to that UID/GID via NFS.

Barcodebuddy could successfully create the data and keys directory, so the permissions are correct, but fails to chown /app/bbuddy/data:

barcodebuddy-1  | Barcode Buddy supervisor started
barcodebuddy-1  |
barcodebuddy-1  | Initialising container
barcodebuddy-1  | 2024/09/18 17:36:38 chown /app/bbuddy/data: operation not permitted
barcodebuddy-1 exited with code 0

This is the section from my docker compose yaml, that relates to barcode buddy:

services:
[...]
  barcodebuddy:
    image: f0rc3/barcodebuddy:latest
    restart: unless-stopped
    volumes:
      #- $BASE_APP_CFG_DIR/barcodebuddy:/config # Test without NFS works fine
      - type: volume
        source: barcodebuddy-config
        target: /config
        volume:
          nocopy: true
    environment:
      - PUID=568
      - PGID=568
      - TZ=$TZ
      - BBUDDY_EXTERNAL_GROCY_URL=https://$HOST_GROCY
    labels:
      - traefik.enable=true
      - traefik.http.routers.barcodebuddy-rtr.rule=Host(`$HOST_BARCODEBUDDY`)
      - traefik.http.routers.barcodebuddy-rtr.entrypoints=websecure
      - traefik.http.routers.barcodebuddy-rtr.service=barcodebuddy-svc
      - traefik.http.routers.barcodebuddy-rtr.middlewares=chain-no-auth@file
      - traefik.http.services.barcodebuddy-svc.loadbalancer.server.port=80
      - homepage.group=Utils
      - homepage.name=Barcode Buddy
      - homepage.href=https://$HOST_BARCODEBUDDY
    networks:
      docker_network: {}
      outside: {}
[...]
volumes:
  barcodebuddy-config:
    driver_opts:
      type: "nfs"
      o: $BARCODEBUDDY_NFS_OPTS_CONFIG
      device: $BARCODEBUDDY_NFS_DEVICE_CONFIG

.env file:

TZ=UTC
BASE_APP_CFG_DIR=/mnt/apps-config/cfgs
HOST_BARCODEBUDDY=barcodebuddy.example.org
BARCODEBUDDY_NFS_OPTS_CONFIG="addr=172.30.250.1,rw"
BARCODEBUDDY_NFS_DEVICE_CONFIG=":/mnt/data/apps-config/barcodebuddy"
$ pwd
/mnt/data/apps-config/barcodebuddy
$ ls -aln
total 76
drwxrwxr-x  4 568 568  4 Sep 18 17:34 .
drwxr-xr-x 18 568 568 18 Sep 18 17:32 ..
drwxr-xr-x  2 568 568  2 Sep 18 17:34 data
drwxr-xr-x  2 568 568  2 Sep 18 17:34 keys
$ cat /etc/exports
[...]
"/mnt/data/apps-config/barcodebuddy"\
        localhost(sec=sys,rw,anonuid=568,anongid=568,all_squash,no_subtree_check)\
        172.30.250.10(sec=sys,rw,anonuid=568,anongid=568,all_squash,no_subtree_check)
[...]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant