我在本地主机上有一个带有某些表格的SQLite数据库,我想将该数据库复制粘贴到运行在Docker上的服务器中。我创建了以下路径:
db_data:这是我想在Django项目中运行的SQLite数据库。 web:这是我的整个Django项目。
在我的docker-compose.yml文件中,我填写了这个卷:
version: "3"
services:
web:
build: ./web/
ports:
- "8001:8001"
volumes:
- ./web:/code
- /home/cosmo/db_data/db.sqlite3:/code/db.sqlite3
command: python manage.py runserver 0.0.0.0:8001
所以我认为Docker将获取我的db_data中的数据库,并在我的Web文件夹(在我的项目中)内创建卷。 在那里,我本地主机上有数据库,所以这不会成为问题。但是我会在这里粘贴settings.py:
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
当我打开db_data文件夹中的db.sqlite3时,里面有所有的表和内容。但是当我运行容器后,我在项目文件夹(web)中的db.sqlite3是空的。
当我运行docker ps命令时,没有数据库容器,也许这就是问题所在,我不知道。我只有以下内容:
红圈里是我的django容器。因此,当我运行服务器并尝试登录时,来自数据库的每个帐户都是未知的。所以我认为容器正在使用我项目中的空数据库。请问有人有解决方案吗?谢谢。