You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于CharlieCloud容器部署QGIS与PostGIS的地理空间处理环境问题求助

基于CharlieCloud容器部署QGIS与PostGIS的地理空间处理环境问题求助

我目前正在把依赖QGIS Processing和PostGIS函数的Python地理空间处理工作迁移到HPC集群,但集群上既没有预装QGIS也没有PostGIS,所以打算用容器搭建环境。不过集群仅支持CharlieCloud,不能用Docker,而我完全是容器新手,折腾一阵后遇到了权限卡壳的问题,想请教大家怎么解决。

我试过的几种方案

  • 基于QGIS官方Docker镜像安装PostGIS:失败,这类专属镜像的环境太封闭,安装其他大型应用时依赖冲突一堆,根本搞不定
  • 基于PostGIS官方Docker镜像安装QGIS:同样失败,和上面的问题一致,专属镜像不适合额外装大型工具
  • 从基础Ubuntu容器手动安装QGIS和PostGIS:QGIS安装成功了,但装PostgreSQL(后续要装PostGIS扩展)的时候直接卡壳

具体报错与环境细节

为了方便排错,我写了极简的Dockerfile来构建基础Ubuntu容器:

FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
ENV LANG=C.UTF-8
RUN locale-gen en_US.UTF-8
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV LC_ALL=en_US.UTF-8
RUN mkdir -p /dss /lrz /gpfs

用CharlieCloud的构建命令:

ch-image build --force -t image_name -f Dockerfile /path

进入容器后,先顺利装好了QGIS:

apt-get update
apt-get install -y qgis

但执行apt-get install -y postgresql时直接报错:

debconf: delaying package configuration, since apt-utils is not installed
dpkg: error: requested operation requires superuser privilege
E: Sub-process /usr/bin/dpkg returned an error code (2)

加sudo重试的话,又出现权限相关的新错误:

sudo: /etc/sudo.conf is owned by uid 4288686, should be 0
sudo: The "no new privileges" flag is set, which prevents sudo from running as root.
sudo: If sudo is running in a container, you may need to adjust the container configuration to disable the flag.

我查了这个"no new privileges"标记的问题,但找到的全是Docker的解决方案,完全找不到CharlieCloud相关的处理办法。

其他备选思路

我还考虑过拆分两个容器:一个跑QGIS,一个跑PostGIS,但完全不知道在CharlieCloud里怎么让两个容器互相访问——网上全是Docker的容器网络教程,CharlieCloud的相关资料少得可怜。

我个人还是更偏好单容器方案,毕竟QGIS已经装成功了,就是权限问题卡着。作为容器新手,不管是单容器的权限解决办法,还是双容器的CharlieCloud网络配置,只要能解决问题的建议都非常欢迎!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 09:52:58