私はpostgres:9.5.6-alpineコンテナとそれにリンクする必要のあるwebという別のコンテナを持っています。 dbとユーザを作成してバックアップを復元するために、起動してdocker-entrypoint.shを実行した後に、postgresコンテナにcreate_db.sh
という名前のスクリプトを実行したいとします。 マイdocker-compose.yml
(postgresの部):docker-composeのコンテナエントリポイントの後にスクリプトを実行
postgres:
build: ./postgres
container_name: postgres
volumes:
- /shared_folder/postgresql:/var/lib/postgresql
ports:
- "5432:5432"
command: sh /home/create_db.sh
create_db.sh
の内容は次のとおりです。私は理解してきた
Attaching to postgres, web
postgres | psql: could not connect to server: No such file or directory
postgres | Is the server running locally and accepting
postgres | connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
:
#!/bin/sh
psql -d template1 -U postgres
psql --command "CREATE USER user WITH PASSWORD 'userpassword';"
psql --command "CREATE DATABASE userdb;"
psql --command "GRANT ALL PRIVILEGES ON DATABASE userdb to user;"
psql —-command “\q;”
psql -U user -d userdb -f /var/lib/postgresql/backup.sql
exit
私はdocker-compose build
を実行し、その後docker-compose up
私はこれを取得しますこれは、私がcreate_db.sh
postgresサーバを起動したときに準備ができていないためですが、どうしたらt後に実行できますか彼は容器のdocker-entrypoint.sh
ですか?
'docker-entrypoint.sh'の中に' create_db.sh'ファイルの内容を追加するべきだと思います。これはあなたの問題を解決します。 –