Docker:PHP、Apache 和 MySQL 在同一个容器中/同一个 Dockerfile

Val*_*Shi 2 php mysql architecture docker microservices

我需要将所有 3 个元素组合在一个容器中的图像。但是,无论我在 Docker Hub 上使用 Google 搜索还是搜索,我都没有发现要保存的图像PHPApache并且MySQL在同一个容器/Dockerfile 中。

有人可以建议创建所需容器的方法吗?

我也很感谢解释为什么这种图像/容器不可用的原因?

作为旁注,我自己无法想象MySQL在不同的容器中分离服务器是可行的,因为它DB本身没有与容器一起保存并且其中只有MySQL服务器。因此,即使MySQL在同一个容器中,仍然与DB自身完全解耦。

小智 5

早安 bob-12345

Docker 容器的要点是获得更灵活的架构。

我将从我的工作生活中举一个例子:

您有一个在 php7.0 上运行的应用程序,您现在想要测试它是否仍然适用于 php 7.3,因此您只需停止 php 7.0 容器并启动 7.3 容器并检查您的应用程序。或者你想检查它是否仍然适用于 ngnx 和 php-fpm 等等......

因此,由于版本控制问题,不建议将您的网络服务器、编码层和持久层放在一个容器中。

如果您仍想将所有内容合二为一。我建议您从一个普通的 debian/ubuntu/whatEverDistroYouPrefer 开始,然后像在常规网络服务器上一样开始构建。

例如:

FROM debian:latest
RUN apt-get update \ 
&& apt-get install -y --no-install-recommends \ 
&& http \
&& php \ 
...
Run Code Online (Sandbox Code Playgroud)

我希望我能帮助你:)