如何在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等等。

https://github.com/zostera/docker-django-ci