docker-compose up重启后重建镜像

时间:2019-08-20 07:17:27

标签: docker docker-compose

我正在开发机器上,并使用一个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

1 个答案:

答案 0 :(得分:-1)

如果您不想每次都初始化数据库数据文件夹,则需要保留该数据库数据文件夹:

    volumes:
      - ./mnt/pg_init_data:/docker-entrypoint-initdb.d:z
      - ./data:/var/lib/postgresql/data