PostgreSQL с проблемой владения докером - PullRequest
0 голосов
/ 23 января 2019

Со вчерашнего дня я пытаюсь запустить свой проект докера в Windows (Bootcamp MacBook Pro), и у меня остается только одна проблема: образ PostgreSQL.

Сообщение об ошибке:

postgres_1         | The files belonging to this database system will be owned by user "postgres".
postgres_1         | This user must also own the server process.
postgres_1         |
postgres_1         | The database cluster will be initialized with locale "en_US.utf8".
postgres_1         | The default database encoding has accordingly been set to "UTF8".
postgres_1         | The default text search configuration will be set to "english".
postgres_1         |
postgres_1         | Data page checksums are disabled.
postgres_1         |
postgres_1         | fixing permissions on existing directory /var/lib/postgresql/data ... ok
postgres_1         | creating subdirectories ... ok
postgres_1         | selecting default max_connections ... 20
postgres_1         | selecting default shared_buffers ... 400kB
postgres_1         | selecting dynamic shared memory implementation ... posix
postgres_1         | creating configuration files ... ok
postgres_1         | 2019-01-22 16:57:37.016 UTC [79] FATAL:  data directory "/var/lib/postgresql/data" has wrong ownership
postgres_1         | 2019-01-22 16:57:37.016 UTC [79] HINT:  The server must be started by the user that owns the data directory.
postgres_1         | child process exited with exit code 1
postgres_1         | initdb: removing contents of data directory "/var/lib/postgresql/data"
postgres_1         | running bootstrap script ... kibati-docker_postgres_1 exited with code 1

Я искал везде, пробовал все, и все еще есть эта проблема ...

Я попробовал:

  • Создать том докера с помощью docker volume create --name postgres -d local и использовать его в моем docker-compose.yml

docker-compose.yml

version: '2'

services:
  postgres:
    image: postgres:latest
    ports:
      - "5432:5432"
    volumes:
      - postgres:/var/lib/postgresql/data

  networks:
    internal_ip:
      ipv4_address: 192.168.1.2

  volumes:
    postgres:
      external: true
  • Добавить том непосредственно в docker compose

образец тома

volumes:
  postgres:
    driver: local
  • Использование относительных или абсолютных путей к Windows
  • Объявление нескольких томов для разных папок PostgreSQL (conf, data…)

Я попытался создать докер, перезапустить компьютер, удалить изображения, ничего не менять, та же ошибка.

Я уже установил флажок Общий диск в настройках Docker.

Источники того, что я пробовал:

https://glennsarti.github.io/blog/puppet-in-docker/

https://forums.docker.com/t/trying-to-get-postgres-to-work-on-persistent-windows-mount-two-issues/12456/5

https://forums.docker.com/t/data-directory-var-lib-postgresql-data-pgdata-has-wrong-ownership/17963/28

https://github.com/docker-library/postgres/issues/435

http://www.lukaszewczak.com/2016/09/run-postgresql-using-docker-with.html

https://gdevops.gitlab.io/tuto_docker/tutoriels/postgresql/postgresql.html

https://devask.cz/questions/48645804/mount-postgres-data-to-windows-host-directory

У кого-нибудь есть рабочее решение?Я продолжу заставлять это работать, и обновлю почту, если я нашел что-то.

Заранее спасибо.

1 Ответ

0 голосов
/ 17 марта 2019
container_name: postgresql
image: postgres:latest
environment:
   POSTGRES_PASSWORD: postgres
#    volumes:
#      - "./database:/var/lib/postgresql/data/"
ports:
  - "5432:5432"

Прокомментируйте тома Эта работа сделала свое дело и работала над окнами, мне нужно вернуть эти две строки на Mac, но пока это самый простой способ работать до тех пор, пока какое-то реальное решение не будет запущено в Docker Windows или Posgres Docker

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...