我正在开发机器上,并使用一个postgres数据库映像,在该映像中我加载了相当多的数据(整个过程大约需要15分钟)。我有一个辅助映像,该映像作为应用程序的一部分从该数据库读取数据。由于一旦将数据加载到数据库中后,我不打算更改数据库中的任何内容,因此我不希望它每次运行docker-compose时都重新构建映像。为了避免这种情况,我总是打电话给
docker-compose build my_flask
docker-compose up
但是,似乎我重新启动计算机后,调用docker-compose up
决定仍然重建Postgres映像,这迫使我每次重新启动计算机时都要经过漫长的加载过程。我该如何阻止这种情况的发生?
docker-compose.yaml:
version: "3"
services:
postgis:
image: mdillon/postgis
hostname: leni_prototype_postgis
container_name: leni_prototype_postgis
environment:
- POSTGRES_PASSWORD=postgres
networks:
- mynetwork
expose:
- "5432"
- "22"
ports:
- "5433:5432"
volumes:
- ./mnt/pg_init_data:/docker-entrypoint-initdb.d:z
restart: always
flask_server:
build: ./flask/Docker/
hostname: my_flask
container_name: my_flask
networks:
- my-network
expose:
- "5005"
ports:
- "5005:5005"
volumes:
- ./flask/Docker/app/grass_data:/grass_data
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- postgis
restart: always
networks:
my-network:
driver: bridge
答案 0 :(得分:-1)
如果您不想每次都初始化数据库数据文件夹,则需要保留该数据库数据文件夹:
volumes:
- ./mnt/pg_init_data:/docker-entrypoint-initdb.d:z
- ./data:/var/lib/postgresql/data