【问题标题】:How can I combine a dockerized python application and an existing SQLite database?如何将 dockerized python 应用程序和现有的 SQLite 数据库结合起来?
【发布时间】:2019-03-06 02:56:45
【问题描述】:

好的,所以我有一个多脚本 python 应用程序,它创建一个空的 SQLite 数据库,webscrapes 数据,并将其插入到数据库中。它还使用 Spatialite 添加几何图形,因此在不同的计算机平台(特别是 Windows)上运行应用程序时会产生一些问题。

所以,我使用 docker 来“dockerize”应用程序。这很好用,并且允许应用程序在不同的平台上运行。

不幸的是,webscrape 需要很长时间,因此该应用程序还具有仅抓取并将新数据添加到现有 SQLite 数据库的功能。这样会快很多。

我还是 docker 新手... 但是,我认为我不能将 1.2 GB SQLite db 添加到 docker 构建中。

我看到了一些关于使用 $ 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"]

【问题讨论】:

    标签: sqlite docker


    【解决方案1】:

    我能够通过将带有整个 sqlite 数据库的 dockerfile 构建到映像中来使其工作,然后运行它,完成后,使用 $ docker cp 将更新的数据库复制到本地文件夹中。

    但是,我仍然对优化方法持开放态度。

    【讨论】:

      猜你喜欢
      • 2021-11-21
      • 2019-08-15
      • 2012-02-10
      • 1970-01-01
      • 2012-11-17
      • 2011-10-21
      • 1970-01-01
      • 2021-01-29
      • 1970-01-01
      相关资源
      最近更新 更多