Docker / Postgres:在docker化的Postgresql中挂载现有数据库

时间:2016-03-30 18:50:06

标签: postgresql docker docker-compose dockerfile docker-machine

所以我在装载Docker Postgres的现有数据集时遇到了问题,我无法理解这一点。这是我的码头撰写文件。

version: '2'
    services:
      postgresql:
        image: postgres:9.5
        environment:
          - PGDATA=/data 
        ports:
      - '5432:5432'
    volumes:
      - ~/.postgresql:/data
  web:
    build: .
    command: sbt/sbt run
    volumes:
      - .:/app
    ports:
      - '9001:9001'
    depends_on:
      - postgresql

这是我看到的错误

ostgresql_1 | FATAL:  data directory "/data" has wrong ownership
postgresql_1 | HINT:  The server must be started by the user that owns the data directory.

有没有人知道如何修复它?谢谢

PS我通过OSX使用Docker Machine,如果这对这个问题产生影响。

1 个答案:

答案 0 :(得分:0)

错误信息非常清楚。我认为容器运行postgres,用户postgres的uid / gid为999(请参阅https://github.com/docker-library/postgres/blob/3f8e9784438c8fe54f831c301a45f4d55f6fa453/9.5/Dockerfile第5行)。您需要chown您的主机数据文件夹给具有相同uid

的用户