尝试各种PHP执行环境! 2016年将由Docker协调决定!
你好。
我是Mandai,负责Wild 开发团队。
如果你想用 docker 创建一个奇特的开发环境,为什么不尝试用 docker build 创建一个原始的 docker 镜像呢?
如果你有一个易于混搭的docker镜像,你的安排就会多种多样!
这是作为 docker 入门系列的一部分编写的。
如果您想阅读过去的 Docker 介绍系列,请点击下面的链接。
请注意,这不是一个可以通过复制粘贴完成的系列,因为这不能通过复制粘贴来完成。不错。
关于PHP执行环境
Docker Hub上的Docker图像非常出色,并且使用它并不是一个问题。
- 例如,您可能想要更具体地了解放置源文件的目录。
- 我想使用 PHP 中的 ffmpeg 对音频文件进行编码。
- 您想要使用带有大量扩展模块的 PHP。
我认为满足这样的需求的唯一方法就是自己重建docker镜像。
通常可以更改现有的Docker映像并重建它,但是在编译PHP时也可以安装模块。 Dockerfile是用于构建Docker的程序手册,如果您看一下,您可以一目了然地看到它在做什么。
换句话说,您当前正在使用的Docker映像在某个地方有一个Dockerfile,如果您对该Dockerfile进行一些较小的修改并构建它,则可以获得所需的最佳Docker图像。
而且,有很多Dockerfile已经上传到github上,并且是公开的(官方的Docker镜像越多,可能性就越大),所以大家可以看各种Dockerfile,偷一下方法。
这次,我想使用官方 PHP docker 镜像作为参考,创建一个包含多字节兼容 PHP 的 docker 镜像。
首先,找到基础docker镜像
如果您查看排在Docker Hub上的Docker映像,则很容易找到与您要创建的相关图像。这次,我想根据官方的PHP Docker映像如果您查看页面,您将看到指向GitHub上管理的Dockerfile的链接。
遵循链接(7.0/apache/dockerfile),我看到了一个用于创建php7.0 + apache docker映像的Dockerfile。
我将把它用作闹剧。在您的VM中,git克隆这个存储库,然后尝试进行更正。
cd ~ vagrant@vagrant:~$ git clone https://github.com/docker-library/php.git vagrant@vagrant:~$ cd /home/vagrant/php/7.0/apache
将“ - 元素构成”添加到./configure选项中。
还可以创建一个用于测试的PHP文件并将其复制到Docker映像中。
VI Dockerfile#dockerfile靠近59号线& amp; ./configure -enable-MbString#←附录-with-with-config-file-path =“ $ php_ini_dir”#添加了以下复制指令到dockerfile#i添加了workdir/var/var/var/www/html中的适当位置。复制mbstring.php/var/www/html/
尝试使用 docker build 编译 PHP
修复后,创建 mbstring.php。
echo“<?php echo mb_convert_kana('1234567890','n');” > mbstring.php
创建后,尝试 docker build。
vagrant@vagrant:~/php/7.0/apache$ docker build -t myphp7 。
之前的不同
此构建构建完成后,让我们从 docker 镜像创建一个 docker 容器。
vagrant@vagrant:~/php/7.0/apache$ docker run -it myphp7 /bin/bash root@66c8bbc720a9:/var/www/html# ls mbstring.php root@66c8bbc720a9:/var/www/html# 服务 apache2 启动[...] 启动 Web 服务器:apache2AH00558:apache2:无法可靠地确定服务器的完全限定域名,使用 172.17.0.3 全局设置“ServerName”指令以抑制此消息 ok root@66c8bbc720a9:/var/。 www/html#curl http://localhost/mbstring.php 1234567890root@66c8bbc720a9:/var/www/html#
看起来像是执行了一条将半角数字转换为全角数字的指令然后退出,但是转换成功,没有任何问题。
无需从头开始自己做,但是我认为您可以通过寻找相对普通的Dockerfile并将其用作闹剧来迅速建立它。官方的PHP Docker映像不包括VIM,因此,如果要修改内部配置,则应使用APT-GET安装VIM,因此没有问题。
当您使用Vagrant创建虚拟环境时,您不可避免地关注文件大小,但是当创建Docker映像时,它符合大小的1/4(当然,它只是PHP执行环境)。首先,如果您仅共享Dockerfile和要放入Docker映像中的文件,则很容易在GIT存储库中进行管理。
能够将整个汇编过程变成命令是在开发开始时构建环境的巨大优势,因此我们希望能够提供最佳的执行环境而不依赖于apt-get或yum。
就是这样。