如何在 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 test
或使用 tox
。这在本地运行良好,测试构建(临时)PostGIS 测试数据库。 PostGIS 和 gdal 之类的东西是所有 requirementst.txt
正确安装所必需的。
我在寻找 Docker 图像时遇到问题,该图像为我提供了完整的 Python + PostGIS/gdal 等堆叠在 Docker 上,我缺乏构建的技能我自己。
我的失败尝试记录在 GitHub 上:
https://github.com/zostera/docker-django-ci
有人可以为我指出正确的方向(教程)或者可以帮助我解决一个工作示例吗?
我已经写了一篇关于Building, Testing and Deploying Django App with Bitbucket Pipelines
的详细post
使用 PostGIS 扩展它可能是一个好的开始,我会为您指明正确的方向。除了 post,我们还开源了 Dockerfiles,您可以对其进行扩展以支持 PostGIS。
您需要一个关于安装 PostGIS 的好教程,例如试试 this one.
从 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 和其他一些东西。
我正在尝试使用 BitBucket 管道在私人 BitBucket 存储库上对 Django 应用程序构建自动化测试。
我已准备好所有测试,它们可以是 运行 使用 ./manage.py test
或使用 tox
。这在本地运行良好,测试构建(临时)PostGIS 测试数据库。 PostGIS 和 gdal 之类的东西是所有 requirementst.txt
正确安装所必需的。
我在寻找 Docker 图像时遇到问题,该图像为我提供了完整的 Python + PostGIS/gdal 等堆叠在 Docker 上,我缺乏构建的技能我自己。
我的失败尝试记录在 GitHub 上: https://github.com/zostera/docker-django-ci
有人可以为我指出正确的方向(教程)或者可以帮助我解决一个工作示例吗?
我已经写了一篇关于Building, Testing and Deploying Django App with Bitbucket Pipelines
的详细post使用 PostGIS 扩展它可能是一个好的开始,我会为您指明正确的方向。除了 post,我们还开源了 Dockerfiles,您可以对其进行扩展以支持 PostGIS。
您需要一个关于安装 PostGIS 的好教程,例如试试 this one.
从 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 和其他一些东西。