【问题标题】:Docker compose mounting Volume not worksDocker撰写安装卷不起作用
【发布时间】:2020-05-05 13:27:34
【问题描述】:

docker-compose down 之后不是 -v 或 --volume, 并重建docker-compose up -d --build

新的 PostgreSQL 容器中没有数据。

奇怪的是,正如你所见,我还有另一个卷 persistent_vol,它运行良好。

这是我的 docker-compose.yml

# the version of Docker-compose
version: "3"

services:
  app:
    build:
      context: . 
    ports:
      - "8000:8000"
    volumes:
      - ./app:/app
      - persistent_vol:/vol/web
    command: > 
      sh -c "python manage.py runserver 0.0.0.0:8000"
    environment:
      - DB_HOST=db
      - DB_NAME=americanos
      - DB_USER=postgres
      - DB_PASS=supersecretpassword
    depends_on:
      - db

  db:
    image: postgres:11-alpine
    volumes:
      - db_vol:/vol/db
    environment:
      - POSTGRES_DB=americanos
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=supersecretpassword

volumes:
  persistent_vol:
  db_vol:

这是检查 db docker 容器。

"Mounts": [
            {
                "Type": "volume",
                "Name": "americanos-project_db_vol",
                "Source": "/var/lib/docker/volumes/americanos-project_db_vol/_data",
                "Destination": "/vol/db",
                "Driver": "local",
                "Mode": "rw",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "volume",
                "Name": "27b655ba943c50d63af79584f764bd3944b0918ceb299621a5f0e80562fc9638",
                "Source": "/var/lib/docker/volumes/27b655ba943c50d63af79584f764bd3944b0918ceb299621a5f0e80562fc9638/_data",
                "Destination": "/var/lib/postgresql/data",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],

我错过了什么吗?

【问题讨论】:

    标签: python postgresql docker docker-compose


    【解决方案1】:

    /vol/db 设置为PGDATA 环境变量或将卷路径更改为/var/lib/postgresql/data,因为postgres 默认数据文件位于/var/lib/postgresql/datahttps://hub.docker.com/_/postgres

      db:
        image: postgres:11-alpine
        volumes:
          - db_vol:/vol/db
        environment:
          - POSTGRES_DB=americanos
          - POSTGRES_USER=postgres
          - POSTGRES_PASSWORD=supersecretpassword
          - PGDATA=/vol/db # added
    

      db:
        image: postgres:11-alpine
        volumes:
          - db_vol:/var/lib/postgresql/data # changed
        environment:
          - POSTGRES_DB=americanos
          - POSTGRES_USER=postgres
          - POSTGRES_PASSWORD=supersecretpassword
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-03
      相关资源
      最近更新 更多