Docker の PostgreSQL の公式イメージでデータの永続化と初期 SQL の投入をする

Docker でデータベースのイメージを使った場合、データの永続化や初期SQLの投入などが必要となりますが、 公式イメージを使うと非常に簡単に設定することができます。   

docker-compose.yml は以下のようになります。
./sql/postgres/initdb.d/ に入っているSQLが一度だけ自動実行されます。

version: '2'
services:
  db:
    image: postgres:9.3
    volumes:
      - db_data:/var/lib/postgresql/data
      - ./sql/postgres/initdb.d:/docker-entrypoint-initdb.d
    ports:
     - "5432:5432"
    environment:
      POSTGRES_PASSWORD: postgres
      POSTGRES_USER: postgres
volumes:
  db_data:
    driver: local