如何构建 pgadmin 并将其部署到 OpenShift?

How to build and deploy pgadmin to OpenShift?

我想在我的 OpenShift 命名空间中部署 pgadmin,但是当我从 docker.hub 部署默认 pgadmin 映像时,出现错误:

    /entrypoint.sh: line 8: can't create /pgadmin4/config_distro.py: Permission denied
    You need to define the PGADMIN_DEFAULT_EMAIL and PGADMIN_DEFAULT_PASSWORD environment variables.

但是,我无法访问 OpenShift 的完整权限,我不是管理员集群,我无法执行 oc adm policy add-scc。 我试图创建 Dockerfile

FROM dpage/pgadmin4 as pgadmin4
USER root 
RUN chown 1000640000:1000640000 /pgadmin4 && \
    sed -i 's/5050/1000720000/g' /etc/passwd && \
    sed -i 's/5050/1000720000/g' /etc/group && \
    find / -user 5050 -exec chown 1000720000 {} \; && \
    find / -group 5050 -exec chown :1000720000 {} \; && \
    sed 's@python /run_pgadmin.py@python /pgadmin4/run_pgadmin.py@g' /entrypoint.sh

USER 1000640000

VOLUME /var/lib/pgadmin
EXPOSE 80 443

ENTRYPOINT ["/entrypoint.sh"]

如果我 docker 构建并部署到 OpenShift,我仍然会遇到错误

也许还有其他方法可以绕过禁令并安装 pgadmin?

按照@rzlvmp 的建议去做。也不要EXPOSE 80 443。在 Openshift 中,如果您没有执行 oc adm policy add-scccluster-admin 角色,即使您拥有它,无论如何处理 scc 也不是一个好主意,您无法公开低于 1024 的端口.以EXPOSE 8080 8443为例。只有在 root UID 下启动的进程才能使用低于 1024 的端口。

如果您认识到您的容器以 GROUPID=0 运行而不是尝试微调 uid,文件权限在 OpenShift 中工作得更好。

不要在容器镜像中嵌入高 uid,chgrp 0 和 chmod g+rwx