繁体   English   中英

如何在BitBucket管道上使用Docker来测试需要PostGIS的Django应用?

[英]How do I use Docker on BitBucket pipelines to test a Django app that needs PostGIS?

我正在尝试使用BitBucket管道在私有BitBucket存储库上的Django应用上构建自动化测试。

我已经完成所有测试,可以使用./manage.py testtox来运行它们。 这在本地运行良好,测试可以在其中构建(临时)PostGIS测试数据库。 要正确安装所有requirementst.txt ,必须使用PostGIS和诸如gdal之类的东西。

我在查找可在Docker上提供完整Python + PostGIS / gdal等堆栈的Docker映像时遇到问题,而且我缺乏自己构建它的技能。

我失败的尝试记录在GitHub上: https : //github.com/zostera/docker-django-ci

有人可以为我指出正确的方向(教程),还是可以通过一个可行的例子帮助我?

我写了一篇有关使用Bitbucket Pipelines构建,测试和部署Django App的详细文章

这是使用PostGIS进行扩展的一个良好的开始,我将为您指出正确的方向。 除了文章之外,我们还开源了Dockerfile ,您可以对其进行扩展以支持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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM