Как я могу объединить dockerized python-приложение и существующую базу данных SQLite? - PullRequest
0 голосов
/ 05 марта 2019

Ладно, у меня есть многошаговое приложение на Python, которое создает пустую базу данных SQLite, обрезает данные и вставляет их в базу данных. Он также использует Spatialite для добавления геомов, что создает некоторые проблемы при запуске приложения на разных компьютерных платформах, особенно в Windows.

Итак, я использовал docker для «докеризации» приложения. Это хорошо работает и позволяет приложению работать на разных платформах.

К сожалению, webscrape занимает много времени, поэтому приложение также имеет функцию только очистки и добавления новых данных в существующую базу данных SQLite. Таким образом, это намного быстрее.

Я все еще новичок в докере ... Но я не думаю, что смогу добавить 1,2 ГБ базы данных SQLite в сборку докера.

Я видел кое-что об использовании $ docker cp для копирования базы данных sqlite из контейнера или монтирования контейнера в базу данных в локальной папке ...

Моя общая цель - создать страницу, на которой заинтересованные стороны могут загрузить существующую базу данных sqlite и иметь возможность применить приложение dockerized python к загруженной базе данных, чтобы добавлять новые данные по мере их появления.

Кто-нибудь знает простой и эффективный способ сделать это?

Мой Dockerfile выглядит так:

FROM python:3.6-stretch

COPY website.py /tmp
COPY json_data.py /tmp
COPY database.py /tmp
COPY update_whalealert.py /tmp
COPY update_spotter.py /tmp
COPY credentials.config /tmp/
COPY requirements.txt /tmp/
COPY spotter.sqlite /tmp/

RUN pip install -r /tmp/requirements.txt
RUN apt-get update
RUN apt-get install -y python3-dev gcc libsqlite3-        
mod-spatialite

WORKDIR /tmp
CMD ["python", "update_whalealert.py"]
CMD ["python", "update_spotter.py"]

1 Ответ

0 голосов
/ 05 марта 2019

Мне удалось заставить его работать, собрав в образ dockerfile со всей базой данных sqlite, затем запустив его, а когда он закончил, используйте $ docker cp, чтобы скопировать обновленную базу данных в локальную папку.

Однако я все еще открыт для оптимизированных методов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...