基于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
相关产品推荐
相关产品推荐

