好的,所以我有一个多脚本python应用程序,它创建一个空的SQLite数据库,对数据进行webscrapes并将其插入数据库中。它还使用Spatialite添加几何图形,因此在不同的计算机平台(特别是Windows)上运行应用程序时会产生一些问题。
因此,我使用docker对应用程序进行了“ dockerize”。这很好用,并允许应用程序在不同平台上运行。
不幸的是,webscrape花费很长时间,因此该应用程序还具有仅将新数据爬网并将其添加到现有SQLite数据库的功能。这样可以更快。
我还是docker的新手... 但是,我认为我无法将1.2 GB的SQLite数据库添加到Docker构建中。
我已经看到了一些有关使用$ docker cp从容器中复制sqlite数据库或将容器安装到本地文件夹中db的东西...
我的总体目标是拥有一个页面,有关各方可以在其中下载现有的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"]
答案 0 :(得分:0)
通过将带有整个sqlite数据库的dockerfile构建到映像中,然后运行它,我能够使它正常工作,完成后,使用$ docker cp将更新的数据库复制到本地文件夹中。
但是,我仍然对优化方法持开放态度。