контейнер postgresql не запускается: chmod: изменение разрешений ‘/bitnami/postgresql/data’: Операция не разрешена

#postgresql #docker #docker-compose #permissions #bitnami

#postgresql #докер #docker-compose #разрешения #bitnami

Вопрос:

bitnami / postgresql не может запуститься с подключением тома. Я использую версию 10.14.0 официального образа docker.

Контейнер запускается без монтирования тома:

 docker run --rm --name postgresql -e POSTGRESQL_PASSWORD=password123 bitnami/postgresql:10.14.0

postgresql 16:09:04.59 
postgresql 16:09:04.60 INFO  ==> ** Starting PostgreSQL setup **
postgresql 16:09:04.62 INFO  ==> Validating settings in POSTGRESQL_* env vars..
postgresql 16:09:04.63 INFO  ==> Loading custom pre-init scripts...
postgresql 16:09:04.63 INFO  ==> Initializing PostgreSQL database...
postgresql 16:09:04.66 INFO  ==> pg_hba.conf file not detected. Generating it...
postgresql 16:09:04.66 INFO  ==> Generating local authentication configuration
postgresql 16:09:05.97 INFO  ==> Starting PostgreSQL in background...
postgresql 16:09:06.11 INFO  ==> Changing password of postgres
postgresql 16:09:06.14 INFO  ==> Configuring replication parameters
postgresql 16:09:06.17 INFO  ==> Configuring fsync
postgresql 16:09:06.18 INFO  ==> Loading custom scripts...
postgresql 16:09:06.19 INFO  ==> Enabling remote connections
postgresql 16:09:06.20 INFO  ==> Stopping PostgreSQL...

postgresql 16:09:07.21 INFO  ==> ** PostgreSQL setup finished! **
postgresql 16:09:07.25 INFO  ==> ** Starting PostgreSQL **
2020-09-16 16:09:07.279 GMT [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2020-09-16 16:09:07.279 GMT [1] LOG:  listening on IPv6 address "::", port 5432
2020-09-16 16:09:07.283 GMT [1] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2020-09-16 16:09:07.296 GMT [105] LOG:  database system was shut down at 2020-09-16 16:09:06 GMT
2020-09-16 16:09:07.302 GMT [1] LOG:  database system is ready to accept connections
  

с подключением тома

 docker run --rm --name postgresql -v /postgresql:/bitnami/postgresql -e POSTGRESQL_PASSWORD=password123 bitnami/postgresql:10.14.0

postgresql 16:10:05.99 
postgresql 16:10:05.99 Welcome to the Bitnami postgresql container
postgresql 16:10:05.99 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-postgresql
postgresql 16:10:05.99 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-postgresql/issues
postgresql 16:10:05.99 
postgresql 16:10:06.01 INFO  ==> ** Starting PostgreSQL setup **
postgresql 16:10:06.02 INFO  ==> Validating settings in POSTGRESQL_* env vars..
postgresql 16:10:06.03 INFO  ==> Loading custom pre-init scripts...
postgresql 16:10:06.03 INFO  ==> Initializing PostgreSQL database...
mkdir: cannot create directory ‘/bitnami/postgresql/data’: Permission denied
postgresql 16:10:06.04 INFO  ==> Stopping PostgreSQL...

  

с помощью файла docker-compose

 postgresql:
      image: bitnami/postgresql:10.14.0
      container_name: postgresql
      ports:
        - 5432:5432
      environment: 
        - POSTGRESQL_REPLICATION_MODE=master
        - POSTGRESQL_REPLICATION_USER=repl_user
        - POSTGRESQL_REPLICATION_PASSWORD=repl_password
        - POSTGRESQL_USERNAME=my_user
        - POSTGRESQL_PASSWORD=my_password
        - POSTGRESQL_DATABASE=my_database
        - POSTGRESQL_SYNCHRONOUS_COMMIT_MODE=on
        - POSTGRESQL_NUM_SYNCHRONOUS_REPLICAS=1
      volumes:
        - /postgresql:/bitnami/postgresql
      restart: always
  

вывод:

 docker-compose up

postgresql      | postgresql 16:12:34.68 
postgresql      | postgresql 16:12:34.68 Welcome to the Bitnami postgresql container
postgresql      | postgresql 16:12:34.68 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-postgresql
postgresql      | postgresql 16:12:34.68 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-postgresql/issues
postgresql      | postgresql 16:12:34.68 
postgresql      | postgresql 16:12:34.70 INFO  ==> ** Starting PostgreSQL setup **
postgresql      | postgresql 16:12:34.72 INFO  ==> Validating settings in POSTGRESQL_* env vars..
postgresql      | postgresql 16:12:34.72 INFO  ==> Loading custom pre-init scripts...
postgresql      | postgresql 16:12:34.73 INFO  ==> Initializing PostgreSQL database...
postgresql      | chmod: changing permissions of '/bitnami/postgresql/data': Operation not permitted
postgresql      | postgresql 16:12:34.74 WARN  ==> Lack of permissions on data directory!
postgresql      | chmod: changing permissions of '/bitnami/postgresql/data': Operation not permitted
postgresql      | postgresql 16:12:34.75 WARN  ==> Lack of permissions on data directory!
postgresql      | postgresql 16:12:34.75 INFO  ==> pg_hba.conf file not detected. Generating it...
postgresql      | postgresql 16:12:34.75 INFO  ==> Generating local authentication configuration
postgresql      | postgresql 16:12:34.78 INFO  ==> Stopping PostgreSQL...
  

Я не могу найти какое-либо решение для этого. похоже, что у других контейнеров этой проблемы нет. Пожалуйста, помогите, если кто-нибудь найдет решение этой проблемы.

Ответ №1:

Инженер Битнами здесь,

Поскольку контейнер Bitnami PostgreSQL является некорневым контейнером, пользователь с идентификатором 1001 должен иметь разрешения на запись в локальную папку, которую вы монтируете.

 sudo chown -R 1001:1001 /postgresql
  

Вы можете найти более подробную информацию об этом в нашем репозитории GitHub

https://github.com/bitnami/bitnami-docker-postgresql#persisting-your-database

Комментарии:

1. Вызванный для меня: sudo chmod -R 777 /postgresql

2. Как и где выполнить эту команду