【发布时间】:2020-12-08 02:54:05
【问题描述】:
更新:
我也在研究,但会继续添加我认为可能有帮助的链接
Migration and Seeding in Django
Providing initial data for models
这是我遇到的错误,因为我无法使用 docker 命令写入我的数据库(您将在下面看到)。这是我的假设。
这是我的文件夹结构。
docker-compose.yml
version: "3"
services:
django:
build: ./api
command: ["python3", "manage.py", "runserver", "0.0.0.0:8000"]
volumes:
- ./api:/app
ports:
- "8000:8000"
frontend:
build: ./frontend
volumes:
- ./frontend:/app
- /app/node_modules
ports:
- "3000:3000"
volumes:
node-modules:
Dockerfile(在 api 文件夹内)
FROM python:3.7.6
WORKDIR /app
COPY requirements.txt /app
RUN pip3 install -r requirements.txt
COPY . .
# Run migrations and load seed data (using SQLite)
RUN python3 manage.py makemigrations
RUN python3 manage.py migrate
RUN python3 manage.py loaddata portal/fixtures/seed.yaml
RUN python3 manage.py loaddata scheduler/fixtures/seed.yaml
EXPOSE 8000
CMD ["python3", "manage.py", "runserver", "0.0.0.0:8000"]
已经尝试了我能够搜索的大多数可能的项目,如果有人可以在这里提供帮助,我将不胜感激。
【问题讨论】:
-
volumes:隐藏了您的镜像构建的所有内容(并且,对于前端容器,还告诉 Docker 使用旧版本的node_modules树)。如果删除所有volumes:块,效果会更好吗? -
是的,我也确实删除了旧卷,但它没有用。它没有初始化和添加数据库中的值。必须按照答案中的建议手动执行此操作,并且有效。
标签: python python-3.x docker docker-compose dockerfile