我在 docker 中有一个项目,我一直在努力从 dockerfile o docker-compose 文件中生成一些文件。
我有一个具有以下结构的 dockerized Django 项目。
assets/
app/
db/
.gitignore (ignoring all files of the folder)
db.sqlite3
docker-compose.yml
Dockerfile
为了这篇文章的目的,我只是写了一个通用结构来说明项目的情况以及我想做什么。
我试图做的是将数据库文件挂载为一个卷(类型:绑定)但没有用。我所做的是将文件夹 db 视为卷文件夹。直到这里一切正常。
我想要做的是在不存在时生成 db.sqlite3 文件,运行迁移并运行命令 python manage.py collectstatic --noinput。
我尝试创建一个入口点文件:
#/bin/sh
python manage.py collectstatic --noinput
db=/code/db/db.sqlite3
if [ ! -f "$db" ]; then
touch "$db"
fi
python manage.py migrate
我尝试在 Dockerfile 中使用 ENTRYPOINT 和 CMD 语句调用此文件,但它们都不起作用。我还尝试从 Dockerfile 运行命令 touch,结果是一样的。