web-dev-qa-db-ja.com

postgresとdocker-compose:カスタムの役割とデータベースを作成できません

私は、custumユーザーとデータベースで単純なpostgreSQLコンテナーを作成しようとしています。

これは私のdocker-composeファイルです:

version: '2'
services:
  db.postgres:
    container_name: db.postgres
    image: postgres:10
    environment:
      - POSTGRES_USER:'myuser'
      - POSTGRES_PASSWORD:'myuserpassword'
      - POSTGRES_DB:'mydb'
    ports:
      - '5432:5432'
    volumes:
      - ./pgdata:/var/lib/postgresql/data

データベースに接続しようとするとエラーが発生します。

docker exec -it db.postgres psql -U myuser myuserpassword
psql: FATAL:  role "myuser" does not exist

OR

$ docker exec -it db.postgres /bin/bash
root@1a0531e0350f:/# psql -U myuser
psql: FATAL:  role "myuser" does not exist

Docker-compose環境変数は、データベースの作成時に無視されているように見えます。

何ができるかわかりません。あなたは問題のアイデアを持っていますか?

よろしくお願いします!

10
zlacheman

Docker-compose.ymlファイルを次のように変更します。

version: '2'
services:
  db.postgres:
    container_name: db.postgres
    image: postgres:10
    environment:
      - POSTGRES_USER=myuser
      - POSTGRES_PASSWORD=myuserpassword
      - POSTGRES_DB=mydb
    ports:
      - '5432:5432'
    volumes:
      - ./pgdata:/var/lib/postgresql/data

次に、現在のデータを完全に削除して、再実行しますdocker-compose up

9
Yuankun