gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 03:41:46 26 4
gpt4 key购买 nike

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

我已准备好所有测试,并且可以使用 ./manage.py test 或使用 tox 运行它们。这在本地工作得很好,测试构建了一个(临时)PostGIS 测试数据库。 PostGIS 和 gdal 之类的东西对于正确安装所有 requirementst.txt 是必需的。

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

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

有人可以为我指出正确的方向(教程)或者帮助我提供一个可行的示例吗?

最佳答案

我写了一篇关于 Building, Testing and Deploying Django App with Bitbucket Pipelines 的详细文章

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

关于python - 如何在 BitBucket 管道上使用 Docker 来测试需要 PostGIS 的 Django 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39506193/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com