Настройка Geo Django и postgis в docker - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь создать настройку docker, чтобы я мог легко создавать и развертывать приложение geo django (с бэкендом postgis). У меня следующая структура папок:

|-- Dockerfile
|-- Pipfile
|-- Pipfile.lock
|-- README.md
|-- app
|   |-- manage.py
|   |-- app
|   `-- app_web

В моем Dockerfile для настройки Django У меня есть следующее:

# 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',
    },
}

Теперь, когда я: run docker -compose up --build Кажется, что все работает (как база данных, так и приложение django раскручивает свои контейнеры). Но всякий раз, когда я пытаюсь по-настоящему работать с базой данных (приложение пусто, теперь мне нужно перенастроить) django, похоже, не распознает базу данных.

Может кто-нибудь сказать мне, что идет не так?

...