Docker compose Postgresql仅在第一次运行初始化sql脚本

时间:2020-06-04 12:17:31

标签: python postgresql docker docker-compose

我正在使用docker-compose通过数据库创建结合了postgresql和python应用程序的docker映像。

启动容器时,我想运行几个sql初始化脚本。为此,我使用了docker-compose.yml中指定的卷(在文件的最后一行):

version: '3.6'

services:
  parking_lots_app:
    build: .
    depends_on:
      - parking_lots_db
    environment:
      STAGE: test
    networks:
      - default
    ports:
      - 5000:5000
    restart: always

  parking_lots_db:
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: 123456
    image: kartoza/postgis
    networks:
      - default
    ports:
      - 5432:5432
    restart: always
    volumes:
      - ./postgresql/:/docker-entrypoint-initdb.d/

问题是这些初始化脚本仅在我第一次运行docker-compose时运行。当我在另一台计算机上尝试该功能时,它第一次又可以运行,但是第二次它没有运行脚本。

我尝试删除计算机上的所有容器,图像和卷。我尝试重新启动并重新启动docker。我尝试使用sql脚本将目录名称更改为不同于“ postgresql”的名称。似乎无济于事。

我正在运行Gentoo-5.4.38。

有人知道吗,怎么了?我已经挣扎了太久了。

谢谢

1 个答案:

答案 0 :(得分:0)

docker-compose up -d --build 重建容器并重新运行 /docker-entrypoint-initdb.d/

中的脚本