PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Проблем с разрешение с PostgreSQL в докер контейнер

Другият отговор наистина сочи основната причина за проблема, но помощната страница, към която сочи, не съдържа решение. Ето какво измислих, за да направя това да работи за мен:

  1. стартирайте контейнера, като използвате вашия нормален файл за съставяне на докери, това създава директорията с твърдо кодирания uid:gid (999:999)
version: '3.7'

services:
  db:
    image: postgres
    container_name: postgres
    volumes:
      - ./data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: fake_database_user
      POSTGRES_PASSWORD: fake_database_PASSWORD
  1. спрете контейнера и ръчно променете собствеността на uid:gid, който искате (ще използвам 1000:1000 за този пример
$ docker stop postgres
$ sudo chown -R 1000:1000 ./data 
  1. Редактирайте вашия docker файл, за да добавите желания uid:gid и го стартирайте отново с помощта на docker-compose (забележете user: )
version: '3.7'

services:
  db:
    image: postgres
    container_name: postgres
    volumes:
      - ./data:/var/lib/postgresql/data
    user: 1000:1000
    environment:
      POSTGRES_USER: fake_database_user
      POSTGRES_PASSWORD: fake_database_password

Причината, поради която не можете просто да използвате user: от самото начало е, че ако изображението се изпълнява като различен потребител, то не успява да създаде файлове с данни.

На страницата с документация за изображение , той споменава решение за добавяне на том за излагане на /etc/passwd файл като само за четене в изображението при предоставяне на --user опция обаче, която не работи за мен с най-новото изображение, тъй като получавах следната грешка. Всъщност нито едно от трите предложени решения не работи за мен.

initdb: error: could not change permissions of directory "/var/lib/postgresql/data": Operation not permitted


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да запазите данните да не се сортират?

  2. Подредете, като не работите върху изчислени колони, ако редът е приложен към множество колони

  3. Как да изобразя postgresql резултати в ejs с помощта на node pg?

  4. Как LocalTime() работи в PostgreSQL

  5. Пребройте кумулативната сума в Postgresql