Overv / openstreetmap-tile-server

Docker file for a minimal effort OpenStreetMap tile server
Apache License 2.0
1.2k stars 482 forks source link

Permission denied "/data/database/postgres" on import with nfs mount volume #431

Open StoneEngineer opened 2 weeks ago

StoneEngineer commented 2 weeks ago

Permission denied (/data/database/postgres) when using external PV (persistant volume) mount. It works with Docker osm-data volume. Luxemburg is ok, but Europe is too big. Fills whole VM, then fails.

Docker Compose:

    volumes:
      # original Docker volume NOT USED because it will fill complete VM!
      # - osm-data:/data/database
      # PV mount
      - /mnt/nfs_pv_swarm/osm/data/database:/data/database
      - /mnt/nfs_pv_swarm/osm/data/tiles:/data/tiles
      - /mnt/nfs_pv_swarm/osm/data/style:/data/style
      # OSM Region Europe
      - /mnt/nfs_pv_swarm/osm/europe-latest.osm.pbf:/data/region.osm.pbf

Docker Swarm Container service log:

+ '[' import == import ']'
+ mkdir -p /data/database/postgres/
+ chown renderer: /data/database/
+ chown -R postgres: /var/lib/postgresql /data/database/postgres/
+ '[' '!' -f /data/database/postgres/PG_VERSION ']'
+ sudo -u postgres /usr/lib/postgresql/16/bin/pg_ctl -D /data/database/postgres/ initdb -o '--locale C.UTF-8'
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
initdb: error: could not access directory "/data/database/postgres": Permission denied
The database cluster will be initialized with locale "C.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
pg_ctl: database system initialization failed