我正在使用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。
有人知道吗,怎么了?我已经挣扎了太久了。
谢谢
答案 0 :(得分:0)
docker-compose up -d --build
重建容器并重新运行 /docker-entrypoint-initdb.d/