kubernetes窗格中的管理员

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

我正在尝试用phpmyadmin和adminer创建一个pod。我已经创建了Dockerfile,但是不确定所需的入口点。

有人以前做到过吗?除了入口点,我已经知道了所有内容...

FROM phpmyadmin/phpmyadmin

ENV MYSQL_DATABASE=${MYSQL_DATABASE}
ENV MYSQL_USER=${MYSQL_USERNAME}
ENV MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD}
ENV MYSQL_PORT=3381
ENV PMA_USER=${MYSQL_USER}
ENV PMA_PORT=3381
ENV PMA_PASSWORD=${MYSQL_PASSWORD}
ENV PMA_HOST=${MYSQL_HOST}

EXPOSE 8081
ENTRYPOINT [ "executable" ]

FROM adminer:4

ENV POSTGRES_DB=${POSTGRES_DATABASE}
ENV POSTGRES_USER=${POSTGRES_USER}
ENV POSTGRES_PASSWORD=${POSTGRES_PASSWORD}

EXPOSE 8082
ENTRYPOINT [ "?" ]

------更新1 ----------阅读一些评论后,我溢出了Dockerfile,并将为kube pod创建yml文件

FROM phpmyadmin/phpmyadmin

ENV MYSQL_DATABASE=${MYSQL_DATABASE}
ENV MYSQL_USER=${MYSQL_USERNAME}
ENV MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD}
ENV MYSQL_PORT=3381
ENV PMA_USER=${MYSQL_USER}
ENV PMA_PORT=3381
ENV PMA_PASSWORD=${MYSQL_PASSWORD}
ENV PMA_HOST=${MYSQL_HOST}

EXPOSE 8081
ENTRYPOINT [ "executable" ]

容器2

FROM adminer:4

ENV POSTGRES_DB=${POSTGRES_DATABASE}
ENV POSTGRES_USER=${POSTGRES_USER}
ENV POSTGRES_PASSWORD=${POSTGRES_PASSWORD}

EXPOSE 8082
ENTRYPOINT [ "?" ]

我仍然不确定入口点脚本应该是什么

docker kubernetes pod
2个回答
0
投票

您不能像这样组合两个泊坞窗映像。您创建的是一个多阶段构建,只有最后一个阶段才是最终映像。即使您使用多阶段副本将它们仔细折叠成一张图像,您也需要考虑如何同时运行这两个过程。上游管理员图像在后台使用php -S


0
投票

您几乎总是在两个单独的部署中运行它。由于您在此自定义Dockerfile中唯一要做的就是设置环境变量,因此您甚至不需要自定义映像。您可以在部署时将Pod规范的env:部分用作define environment variables

image: adminer:4 # without PHPMyAdmin
env:
  - name: POSTGRES_DB
    value: [...]       # fixed value in pod spec
    # valueFrom: ...   # or get it from a ConfigMap or Secret

运行两个部署,每个都有一个容器,每个都有一个匹配的服务。 (不要运行裸容器,也不要试图将两个容器放在一个部署中。)如果数据库也位于Kubernetes内部,则使用其服务的名称和端口;我通常希望它们是“正常”的3306/5432端口。

© www.soinside.com 2019 - 2024. All rights reserved.