我正在尝试创建一个docker设置,这样我就可以轻松地构建和部署一个geodjango应用程序(带有postgis后端)。我有以下文件夹结构:
|-- Dockerfile
|-- Pipfile
|-- Pipfile.lock
|-- README.md
|-- app
| |-- manage.py
| |-- app
| `-- app_web在我设置Django的Dockerfile中,我有以下内容:
# Pull base image
FROM python:3.7
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# install dependencies
RUN pip install pipenv
COPY . /code
WORKDIR /code/
RUN pipenv install --system
# Setup GDAL
RUN apt-get update &&\
apt-get install -y binutils libproj-dev gdal-bin python-gdal python3-gdal
# set work directory
WORKDIR /code/app
CMD ["python", "manage.py", "migrate", "--no-input"]在我的docker-compose.yml文件中:
version: '3.7'
services:
postgis:
image: kartoza/postgis:12.1
volumes:
- postgres_data:/var/lib/postgresql/data/
web:
build: .
command: python /code/app/manage.py runserver 0.0.0.0:8000
ports:
- 8000:8000
volumes:
- .:/code
depends_on:
- postgis
volumes:
postgres_data:最后在settings.py中:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'postgres',
'USER': 'postgres',
'HOST': 'postgis',
},
}现在,当我:运行docker-compose up --build时,一切似乎都正常了(数据库和django应用程序都启动了它们的容器)。但每当我尝试实际使用数据库时(应用程序现在是空白的,所以我仍然需要迁移),django似乎无法识别数据库。
谁能告诉我哪里出了问题?
发布于 2020-05-23 14:59:22
django run docker-compose up --构建一切似乎都正常(数据库和
应用程序都启动了它们的容器)
一定要检查日志,因为容器在发现错误后不一定会停止。
docker-compose logs此外,您已经在Dockerfile中设置了工作目录
WORKDIR /code/app因此,看看您在docker-compose.yml中执行的命令
command: python /code/app/manage.py runserver 0.0.0.0:8000发布于 2021-10-11 17:21:15
你安装应用程序了吗?
INSTALLED_APPS = [
# [...]
'django.contrib.gis'
]发布于 2022-02-15 22:08:07
在settings.py中,需要指定PASSWORD:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': 'postgres',
'HOST': 'postgis',
},
}https://stackoverflow.com/questions/60403731
复制相似问题