windows - Docker postgres container mister data, der skal gemmes i volumen

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg kører en postgres database genereret af nedenstående docker-compose fil på Windows. Før jeg kørte docker-compose up --build, oprettede jeg et dockervolumen med docker volume --name postgresdata --driver local. Sidstnævnte er gjort for at undgå at montere en Windows-mappe i Postgres.


Men når jeg kører docker-compose down efterfulgt af docker-compose up --build, er databasen tom, som jeg ikke ville have forventet. Eventuelle ideer eller forslag?


Dette er den docker-compose.yml-fil, jeg bruger:


version: '3.0'

services:

  db:
    image: postgres:latest
    restart: always
    ports:
      - 5432:5432
    env\_file:
      - env\_file
    volumes:
      - postgresdata
    networks:
     - db1

  market\_data:
    build: .
    environment:
      PYTHONUNBUFFERED: 'true'
    stdin\_open: true
    tty: true
    links:
     - db:db
    container\_name: market\_data\_container
    volumes:
     - '.:/market\_data'
    depends\_on:
     - db
    networks:
     - db1

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080
    networks:
     - db1
    depends\_on:
     - db


volumes:
 market\_data:
 postgresdata:
  external: true

networks:
 db1:
  driver: bridge

Bedste reference


Postgres bruger allerede et volumen til at fortsætte data, men docker-compose down sletter dette lydstyrke. Du bruger navngivne mængder i din komponentfil, men montere det ikke korrekt. [9]


version: '3.0'
services:
  db:
    image: postgres:latest
    restart: always
    ports:
      - 5432:5432
    env\_file:
      - env\_file
    volumes:
      - postgresdata:/var/lib/postgresql/data
    networks:
     - db1


Tilføj standardbanen for postgres-data til dit volumen postgresdata:/var/lib/postgresql/data. Dette bør rette op på det.