【发布时间】:2019-02-26 15:49:34
【问题描述】:
我在 docker 容器中设置了一个 django 项目,一切都按预期工作,除了我在 mysql 映像中找不到项目数据库。
Dockerfile
FROM python:3
RUN mkdir /django-website
WORKDIR /django-website
COPY . /django-website
RUN pip install -r requirements.txt
docker-compose.yml
version: '3'
services:
db:
image: mysql:5.7
restart: always
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=mywebsite
- MYSQL_USER=root
- MYSQL_PASSWORD=root
ports:
- '33060:3306'
volumes:
- /var/lib/mysql
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/django-website
ports:
- '8000:8000'
links:
- db
settings.py
DATABASES = {
'default': {
'ENGINE': "django.db.backends.mysql",
'NAME': "mywebsite",
'USER': "root",
'PASSWORD': "root",
'HOST': 'db',
'PORT': '3306',
}
}
我运行了 migrate 并且成功了:
docker-compose run web python manage.py migrate
我创建了超级用户:
docker-compose run web python manage.py createsuperuser
开发服务器正在工作 docker-compose up 并且该站点正在按预期工作,当我在 mysql 图像中导航时的问题我没有找到与项目相关的数据库 mywebsite 。
你能告诉我缺少什么吗?如果没有创建数据库,迁移是在哪里应用的?
提前致谢。
【问题讨论】:
-
当您“浏览图像”时,您是什么意思? MySQL 数据库不是作为文件创建在磁盘上的,您希望在哪里看到它?
-
我知道它不会是在磁盘上创建的文件。我在 mysql 映像中导航意味着我在 docker 映像中连接到 mysql shell 并使用了
SHOW DATABASES命令,但我没有找到mywebsite数据库。我应该在其他地方找到它吗? -
你确定你告诉 Django 使用 MySQL 吗?显示您的 DATABASES 设置。
-
问题已更新。我想知道如何正确应用迁移并且开发服务器正常工作。
-
能分享一下你跑
docker-compose run web python manage.py migrate的结果吗?
标签: mysql django docker docker-compose dockerfile