如何在Cloud Foundry环境中运行pgadmin4 docker镜像?

问题描述 投票:0回答:1

我们公司使用Cloud Foundry来提供云服务。目前,我需要 Docker 容器解决方案来分析云铸造环境中连接的数据库。我尝试使用 cf 工具在 dockerhub 中部署 pgadmin 的 docker 容器

版本 7.5 和 7.0 以及以下 dockers

https://hub.docker.com/layers/dpage/pgadmin4/7.5/images/sha256-6cb9dbbe4bf7a5fe148ccba43bf241e34e26b36d490b42f17e57f3267f8e17f5?context=explore

https://hub.docker.com/layers/dpage/pgadmin4/7/images/sha256-6cb9dbbe4bf7a5fe148ccba43bf241e34e26b36d490b42f17e57f3267f8e17f5?context=explore 但这次尝试失败了。

详情:

首先,我设置默认密码和默认电子邮件

PGADMIN_DEFAULT_EMAIL
PGADMIN_DEFAULT_PASSWORD

否则启动将中止。

其次,如果我尝试在没有任何与 tcp ip 相关的环境的情况下开箱即用,则会发生由gunicorn发送的连接拒绝错误

我使用变量设置监听地址 0.0.0.0 和默认端口 8080

PGADMIN_LISTEN_ADDRESS
PGADMIN_LISTEN_PORT

https://www.pgadmin.org/docs/pgadmin4/7.5/container_deployment.html#environment-variables

如果我尝试部署 pgadmin docker 映像,我会在启动期间在控制台日志中看到,pgadmin 初始化在给定主机 0.0.0.0 上启动,并使用带有 Gunicorn 的给定端口 8080。

然后主机 10.xx.yy.yx 的端口 80 和 443 上会显示连接拒绝错误。

例如:

[CELL.0] 无法与 10.xx.xz.yz:80 建立 TCP 连接:拨打 tcp 10.xx.xz.yz:80:连接:连接被拒绝

我在 pgadmin 中寻找其他可能的环境设置,并通过 PGADMIN_CONFIG 前缀设置了许多与 tcp ip 堆栈相关的环境。最后我分析了 pgadmin4 的 python 源代码、shell 脚本和 Dockerfile。

我发现,docker容器默认暴露了80和443端口。我通过gunicorn查看其他环境https://github.com/benoitc/gunicorn/blob/master/gunicorn/config.py

但是目前无法使用官方的 docker 镜像。如果我从 pgadmin 的 docker hub 中选择其他镜像,我可以使用这些镜像,但是这些 docker 镜像使用从 FTP 目录下载并设置其他端口暴露。

当然,我可以使用 pgadmin4 的其他图像,或者我可以使用其他解决方案,例如 Cloud dbeaver docker Images。

我们部门更喜欢pgadmin方式。

有人对如何使用 dpage pgadmin4 图像解决此问题有任何想法吗?

docker gunicorn cloud-foundry pgadmin-4 connection-refused
1个回答
0
投票

我们能够使用下面的清单将 pgadmin4 ui 部署到具有特定图像的 CF。问题出在最新图像上。希望这有帮助

applications:
  - name: sandbox-ilm-pgadmin
    docker:
      image: dpage/pgadmin4:2023-05-02-1
    instances: 1
    health-check-type: process
    env:
      PGADMIN_DEFAULT_EMAIL: [email protected]
      PGADMIN_DEFAULT_PASSWORD: Sandbox123*
      PGADMIN_LISTEN_ADDRESS: 0.0.0.0
© www.soinside.com 2019 - 2024. All rights reserved.