我正在尝试用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 [ "?" ]
我仍然不确定入口点脚本应该是什么
您不能像这样组合两个泊坞窗映像。您创建的是一个多阶段构建,只有最后一个阶段才是最终映像。即使您使用多阶段副本将它们仔细折叠成一张图像,您也需要考虑如何同时运行这两个过程。上游管理员图像在后台使用php -S
。
您几乎总是在两个单独的部署中运行它。由于您在此自定义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端口。