2016-11-14 3 views
2

Я пытаюсь настроить изображение докера с помощью Centos7 и PostgreSQL 9.6.Postgresql 9.6 initdb сбой в контейнере дозатора Centos 7

Я использую CentOS: centos7 изображение в качестве основания, и я следовать инструкциям из этой страницы: https://wiki.postgresql.org/wiki/YUM_Installation

на этапе инициализации DB

sh-4.2# /usr/pgsql-9.6/bin/postgresql96-setup initdb 
Failed to get D-Bus connection: Operation not permitted 
failed to find PGDATA setting in postgresql-9.6.service 

Я попытался последовать за этими шагами, чтобы позволить Systemd для изображения CentOS, https://hub.docker.com/_/centos/ Но это не поможет.

Я также попытался закомментируйте stmts в сценарии postgresql96-установки

#PGDATA=`systemctl show -p Environment "${SERVICE_NAME}.service" | 
#    sed 's/^Environment=//' | tr ' ' '\n' | 
#    sed -n 's/^PGDATA=//p' | tail -n 1` 
#if [ x"$PGDATA" = x ]; then 
# echo "failed to find PGDATA setting in ${SERVICE_NAME}.service" 
# exit 1 
#fi 

Теперь initdb работ. Но запуск службы дает мне то же сообщение об ошибке

sh-4.2# systemctl enable postgresql-9.6.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-9.6.service to /usr/lib/systemd/system/postgresql-9.6.service. 
sh-4.2# systemctl start postgresql-9.6.service 
Failed to get D-Bus connection: Operation not permitted 

Пропустил ли я что-нибудь? Кто-нибудь может мне помочь?

+0

Нельзя использовать официальное изображение postgres https://hub.docker.com/_/postgres/ – Rao

+0

@Rao У меня такая же проблема. Тот, на который вы ссылаетесь, не Centos7. Версия CentOS 7 не имеет «последней версии». Тот, к которому они ссылаются, составляет 9.5, а не 9.6, и не настроен как root для последующих установок: https://hub.docker.com/r/centos/postgresql-95-centos7/ – nealmcb

+0

Это, похоже, маршрут к решению для «Не удалось подключиться к D-Bus: операция не разрешена»: https://serverfault.com/questions/824975/failed-to-get-d-bus-connection-operation-not-permitted – nealmcb

ответ

0

Основная проблема объясняется и может быть решена с этим ответом:

Failed to get D-Bus connection: Operation not permitted - Server Fault

Вы сделать свой собственный новый образ (centos7-systemd), но это не так сложно, как это выглядит. Но будьте осторожны, чтобы делать то, что он говорит, работает ваш новый образ с помощью:

docker run --privileged -ti -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup centos7-systemd /usr/sbin/init

, а затем подключить к нему через, например,

$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6667f8acbe5c centos7-systemd "/usr/sbin/init" 33 minutes ago Up 13 minutes eager_brattain $ docker exec -it eager_brattain bash

Затем запустите эти инструкции Postgres на https://wiki.postgresql.org/wiki/YUM_Installation и они будут работать нормально.

0

«Подключение D-Bus: операция не разрешена» - это намек на то, что Postgres хочет поговорить с демоном SystemD. Я запускаю Postgres в контейнере докеры centos-7, используя https://github.com/gdraheim/docker-systemctl-replacement, чтобы избежать этой ситуации.

Смежные вопросы