- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在试验 Docker,并希望从本地 MAMP 堆栈转移到 Docker。当然,我偶然发现了官方 php:7.0
图像,但我也想使用 Apache,所以似乎 php:7.0-apache
是要走的路。但是我看到有一个名为 php:7.0-alpine
的图像更 slim ,而 Apache 也有两个版本,即 httpd:2.4
和 httpd :2.4-alpine
.
是否有任何建议的组合来使用 Apache 和 PHP(分开或组合)同时仍然具有小图像尺寸?此外,我想知道在哪里可以查看图像中的可用模块,因为我还想使用 MariaDB 和 mod_rewrite,它们可能有更多的依赖项,这些依赖项已被省略以保持较小的大小。
我遇到了this very detailed and awesome tutorial关于如何将 nginx 和 PHP 以及 MySQL 拆分到不同的容器中,但使用 FCGI 将 PHP 附加到 nginx。这意味着我可以使用所有不同的基于 alpine 的工具图像,并使用 FCGI 链接它们。不幸的是,我从未听说过或使用过 FCGI,但我想更多的研究将产生有关如何使用 Apache 实现此基础架构的信息。
最佳答案
除了helmbert s 提出的对我有用的解决方案我正在摆弄官方 httpd:2.4-alpine
图像。我想补充一些我在处理此问题时偶然发现的信息和注意事项。
a2en*
和 a2dis*
脚本。/etc/apache2
中没有通用文件夹结构。一切都在 /usr/local/apache2
中,而您的全局 httpd.conf
在 /usr/local/apache2/conf/
中。在此文件中,您必须手动取消注释模块行以加载它们以及存储在 /usr/local/apache2/conf/extra 中的进一步配置文件,例如 httpd-vhosts.conf
/
.httpd-vhosts.conf
来设置我的测试的基本选项:<VirtualHost *:80>
DocumentRoot /usr/local/apache2/htdocs
<Directory /usr/local/apache2/htdocs>
Options -Indexes +FollowSymLinks -MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog /usr/local/apache2/main-error.log
LogLevel warn
CustomLog /usr/local/apache2/main-access.log combined
</VirtualHost>
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
./bin/apachectl restart
假设您在 /usr/local/apache2
中。nano
,我必须使用 apk --no-cache add nano
手动安装它。这可以在交互式 session 中完成,也可以在全局范围内使用 Dockerfile
来 fork 基础镜像。nano
时出现错误 - 在我的情况下,我必须在交互式 shell 或 ENV TERM xterm
中 export TERM=xterm
在 Dockerfile
中。php-fpm
必须能够访问相同的文件——这是我最初在提议的解决方案中并没有真正注意到的。这也意味着我将源文件安装在两个不同的路径(/usr/local/apache2/htdocs
在 httpd
图像和 /var/www/html
在 php-fpm
图像中)并且必须正确转发调用。我在 httpd.conf
中使用了以下行。ProxyPassMatch "^/(.*\.php)$" "fcgi://fpm:9000/var/www/html/$1"
fpm
名称是我使用 --link fpm
链接到 httpd
并自动添加的容器的名称到 /etc/hosts
。COPY
命令或应用基本的 sed
调用将所有更改添加到我的 Dockerfile
。SetHandler "proxy:unix:/var/run/php7-fpm.sock|fcgi://fpm/"
使用 unix 套接字,但我不知道'不知道这是否有用。关于php - Docker 中 PHP 和 Apache/httpd 的 Alpine 变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41303775/
所以最近(9 月 5 日)Alpine Linux 软件包仓库更新为 postgresql-client 12.4 我在我的 Dockerfile ( apk add postgresql-clien
当我运行 apk add --update ab 时出现错误: bash-4.3# apk add --update ab fetch http://dl-cdn.alpinelinux.org/al
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 9 个月前关闭。 Improve t
我有一个在 Alpine 发行版上运行的 docker 镜像,为了让我的一个要求工作 - pocketsphinx==0.1.15,我必须在我的 DockerFile 中安装一些依赖项: FROM p
我已按照以下步骤创建自定义 rootfs 镜像以使用 firecracker 启动:- https://github.com/firecracker-microvm/firecracker/blob/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在使用 alpine(最低 3.5)并且我需要使用 nodeJS 4.8.4 Docker 文件 FROM alpine:3.5 RUN apk add --update nodejs=4.8.4
使用 ruby-2.6.6-alpine 的 Docker 镜像创建了一个 498mb 的镜像大小。但是,当我降级到 ruby-2.6.5-alpine 时,它又回到了 266mb。 2.
我尝试在php:7.0-fpm-alpine上安装bz2扩展(基于Alpine 3.4): FROM php:7.0-fpm-alpine RUN docker-php-ext-install bz2
1、运行 fonts ,打开字体文件夹,找到要用的字体文件; 2、修改Dockerfile,例如: ?
我有这个Dockerfile ... FROM keymetrics/pm2:latest-alpine RUN apk update && \ apk upgrade && \ ap
我已经阅读了很多有关Docker容器和Unikernel的知识,以及如何在自己的应用程序中运行轻量级环境。 我知道Linux容器和Unikernel是不同的东西,因为第一个是内核功能(例如 names
我有一个 docker 镜像 nginx:stable-alpine,我需要使用 nginx-extras 为了使用 rewrite_by_lua指示。 我尝试通过 apk add --cached
堆高车 我正在使用Docker容器化我的应用程序。在下面的stage中,我尝试使用UPX对其进行打包。 FROM alpine:3.8 AS compressor # Version of upx t
我在CI / CD机器上使用Alpine linux。下面的docker文件: FROM node:10.15-alpine RUN npm i -g sequelize sequelize-cli
我正在尝试使用 The Badass Runtime Plugin 创建自定义运行时图像然后在 Alpine 上执行它。但它失败并显示以下错误消息。 jibcmd_1 | /bin/sh: exec
如何为所有语言安装字体?这是我的工作,但是Chrome中没有日语字体。 从此图像:https://github.com/Zenika/alpine-chrome/blob/master/Dockerf
是否可以在 Alpine Linux 中的 less 命令上启用鼠标滚动? 我尝试过使用 export LESS=-R 但没有任何作用。 最佳答案 Alpine 上默认的 less 由 BusyBox
我正在尝试在 alpine 中安装一个包,在本例中我指定了“jasper-dev”,但我和其他许多人都遇到过这种情况。我在终端中得到的输出是: / # apk add jasper-dev ERROR
当尝试安装 pdftk apk 时抛出此错误。 ERROR: unsatisfiable constraints: pdftk (missing): required by: world[
我是一名优秀的程序员,十分优秀!