Postgres Dockerイメージを起動した後にデータベースを作成したいとします。Postgres Dockerコンテナにデータベースを作成するにはどうすればよいですか?
私のデータベース作成コマンドをドッカー作成ファイルまたは子ドッカーファイルに置くと、実際にpostgresを起動するためのベースイメージのコマンドが上書きされるため、接続先のサーバーが起動していません。
例えば:
version: '2'
services:
db:
command: bash -c "su - postgres -c '/usr/lib/postgresql/9.6/bin/psql -h 127.0.0.1 -p 6543 -U postgres -c \"create database dev;\"'"
environment:
- PGDATA=/pg
- POSTGRES_PASSWORD=postgres
- POSTGRES_USER=postgres
image: postgres:9.6
ports:
- '6543:5432'
tmpfs: /pg
そしてimage documentationは、彼らはPostgresのを開始するために実行されている正確なコマンドを言っていません。私はbash -c "postgres && ...
をコマンドの冒頭に置こうとしましたが、Postgresをrootとして起動できないことを伝えていません。
私が見つけることができる唯一の可能な解決策は、docker run postgres:9.6 psql -h postgres -U postgres -c 'create database'
のようなbashスクリプトソリューションを利用して、ドッカーの作成とドッキングファイルを放棄することですが、これは恐ろしいことです。
どうすればよいですか?