如何构建 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-scc
的 cluster-admin
角色,即使您拥有它,无论如何处理 scc 也不是一个好主意,您无法公开低于 1024 的端口.以EXPOSE 8080 8443
为例。只有在 root
UID 下启动的进程才能使用低于 1024 的端口。
如果您认识到您的容器以 GROUPID=0 运行而不是尝试微调 uid,文件权限在 OpenShift 中工作得更好。
不要在容器镜像中嵌入高 uid,chgrp 0 和 chmod g+rwx
我想在我的 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-scc
的 cluster-admin
角色,即使您拥有它,无论如何处理 scc 也不是一个好主意,您无法公开低于 1024 的端口.以EXPOSE 8080 8443
为例。只有在 root
UID 下启动的进程才能使用低于 1024 的端口。
如果您认识到您的容器以 GROUPID=0 运行而不是尝试微调 uid,文件权限在 OpenShift 中工作得更好。
不要在容器镜像中嵌入高 uid,chgrp 0 和 chmod g+rwx