如何在BitBucketpipe道上使用Docker来testing需要PostGIS的Django应用程序?
我正尝试使用BitBucketpipe道在专用BitBucket回购库上构buildDjango应用程序的自动化testing。
我有所有的testing,他们可以运行使用./manage.py test
或使用tox
。 这在本地工作正常,在那里testingbuild立(临时的)PostGIStesting数据库。 对于所有的requirest.txt来说,PostGIS和gdal之类的东西都是正确安装所必需的。
我在找Docker镜像时遇到了问题,Docker镜像在Docker上给了我一个完整的Python + PostGIS / gdal等堆栈,而且我缺乏自己构build它的技能。
我的失败尝试logging在GitHub上: https : //github.com/zostera/docker-django-ci
有人能指点我正确的方向(教程)或者可能帮助我一个工作的例子吗?
我已经写了一篇关于使用Bitbucketpipe道构build,testing和部署Django应用程序的详细文章
用PostGIS扩展它可能是一个好的开始,我会指出你正确的方向。 除了文章,我们已经开源了Dockerfiles ,你可以扩展到支持PostGIS。
你需要一个关于安装PostGIS的好教程,例如试试这个 。
从centos7-postgresql9.4
Dockerfile开始,在VOLUME
行之前添加用于安装PostGIS的命令:
... # install PostGIS RUN yum -y install postgis2_94 postgis2_94-client VOLUME ["/var/lib/pgsql/9.4"]
最后,你必须在数据库中启用扩展。 将此代码添加到start_postgres.sh
:
if [ -n "${POSTGRESQL_DATABASE}" ]; then echo "Creating database \"${POSTGRESQL_DATABASE}\"..." sudo -u postgres psql -c "CREATE DATABASE \"${POSTGRESQL_DATABASE}\" OWNER \"${POSTGRESQL_USER}\";" # create db gistest, connect to db gistest and create postgis extension sudo -u postgres psql -c "CREATE DATABASE gistest;\c gistest;CREATE EXTENSION postgis;" fi
我们最近弄明白了,发表了我们自己的Docker镜像,支持Python,Django,Postgres,PotGIS等等。