首页 > 解决方案 > docker-compose 和初始化数据库

问题描述

我有两个 docker 容器,一个 Django 和一个 PostgreSQL。我的问题是,当我第一次运行容器时,包括创建步骤,使用docker-compose up [--force-recreate] --buildDjango 实例失败,因为它无法连接到数据库。后续使用docker-compose up就好了。

在我看来,在 Django 启动之前数据库初始化还没有完成。我正在使用常见的“环境变量”方法来初始化数据库。

在相关的说明中,有没有办法让 Djangomigrate在第一个 docker 映像创建时也完成?

标签: djangopostgresqldocker-compose

解决方案


您可以使用像https://github.com/ufoscout/docker-compose-wait/releases/download/2.5.0/wait这样的库

要使用它,请将其放入 Docker Compose 文件的 CMD 部分。像这样:

CMD /wait && <INSERT THE REST OF YOUR EXECUTION COMMAND>

推荐阅读