2016-11-14 35 views
2

CentOS7とPostgreSQL 9.6でドッカーイメージを設定しようとしています。私にsystemdを有効にするために以下の手順を実行しようとしたhttps://wiki.postgresql.org/wiki/YUM_InstallationPostgresql 9.6 initdbがCentOS 7ドッカーコンテナで失敗する

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 

を初期化するステップ:

IはCentOSの使用:塩基としてcentos7画像を、私は、このページの手順に従っCentOSイメージの場合 https://hub.docker.com/_/centos/ しかし、それは役に立ちません。

私はまたpostgresql96-setupスクリプト

#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の作品にSTMTSをコメントアウトしてみました。しかしサービスを開始すると、同じエラーメッセージが表示されます

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.6ではなく、9.5であり、インストールのためのルートとして設定されていません:https://hub.docker.com/r/centos/postgresql-95-centos7/ – nealmcb

+0

これはおそらく'Dバス接続を取得できませんでした:操作が許可されていません 'の解決策へのルート: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

その後https://wiki.postgresql.org/wiki/YUM_Installationでそれらのpostgresの命令を実行すると、彼らは正常に動作します。

0

"Dバス接続:操作が許可されていません"は、PostgresがSystemDデーモンと通信するためのヒントです。私はその状況を避けるためにhttps://github.com/gdraheim/docker-systemctl-replacementを使ってcentos-7ドッカーコンテナでPostgresを実行しています。

関連する問題