【发布时间】:2017-11-20 15:33:33
【问题描述】:
我正在尝试将 Docker 与 Django 和 MySQL 数据库一起使用,但不幸的是,在 docker-compose up 期间,它有时会在 End of list of non-natively partitioned tables 上停止,并且我的服务器没有启动。当我在没有 Docker 的情况下使用我的应用程序时,它可以工作。有什么建议吗?
我的docker-compose.yml:
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
db:
image: mysql
environment:
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
- MYSQL_USER=root
- MYSQL_DATABASE=pri
Dockerfile:
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'pri',
'USER': 'root',
'HOST': 'db',
}
}
在我看来,我的问题可能与目录结构有关。也就是说,它看起来是这样的:
`DockerContainer`:
- docker-compose.yml
- Dockerfile
- requirements.txt
- ProjectDirectory
在ProjectDirectory 我有virtualenv 和项目:
- bin
- include
- lib
- pip-selfcheck.json
- Project
在Project我有git仓库、后端和前端:
- backendFolder
- frontendFolder
在backendFolder:
-backendProject
在-backendProject:
- my project with `manage.py` etc.
【问题讨论】:
-
你的迁移在哪里?
-
我不确定它们应该在哪里?
-
你是如何从 djago 连接到数据库的,你的 DATABASE 设置部分有什么?
-
我已经在帖子中添加了我的数据库设置。
-
它不会是 127.0.0.1 而是 db,因为它位于您命名为 'db' 的另一个容器中。
标签: python mysql django database docker