2017-02-12 53 views
0

我的应用程序是基于Laravel框架,我需要建立一个泊坞容器规格如下:为Laravel泊坞容器:在CentOS 7.x的PHP 7.x的

  • 的CentOS/RHEL 7.x的
  • PHP 7.x的
  • PHP扩展:
    • OpenSSL的
    • PDO
    • MBSTRING
    • 标记者
    • XML

但问题是:

  • 在DockerHub PHP官方图像是基于Ubuntu的,但我而是在RHEL/CentOS上使用PHP而不是Ubuntu。
  • 在CentOS官方百胜库最新的PHP版本是5.4.16 比版本Laravel要求较低。基于distrowatch.com,似乎RHEL在它的存储库上仍然具有相同的旧版本的PHP。
  • 我不能相信非官方的图像,所以解决方案应该仅基于官方图像。
  • 我想在我的生产环境中使用这个容器,所以我宁愿依靠可信资源而不是像Webtatic这样的第三方存储库。

有什么方法可以在基于CentOS的Docker容器上安装最新版本的PHP?例如,是否可以制作基于CentOSPHP官方图片的图片?


很抱歉,如果我的问题听起来很愚蠢,我还是新的码头工人和阅读文档和一些网上的文章我还没有找到我的答案还没有了。

+0

您可以首先下载官方的CentOS映像,然后在其上面使用yum安装php 7和其他php库。然后,您可以将生成的容器提交为新图像并将其用于您的目的。 – Gayan

+0

感谢您的及时回复。 问题是官方RHEL/CentOS Yum存储库上最高可用的PHP版本是5.4.16。可以通过添加Webtatic存储库或从源代码编译来安装这些包,但这对于生产来说不应该是安全的。 –

回答

1

我也跟着下面的步骤,并成功创建CentOS图片用PHP 7.0。

拉下并以交互模式运行CentOS映像。

docker run -it centos 

我也跟着在webtatic提到的设置php7这些步骤。要安装,首先你必须添加相应于你的CentOS/RHEL版本Webtatic EL yum软件库信息百胜

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm 

至7个

yum install php70w php70w-opcache 

安装软件包的安装PHP

yum install OpenSSL PDO Mbstring Tokenizer xml zip unzip curl 

我另外添加了zip unzip curl,因为他们需要安装composer。通过键入exit,并列出了可用的容器

将退出从容器。

docker ps -a 

复制容器ID并通过使用以下命令将其提交为新图像。

docker commit -m "setup centos image with php7.0 and composer" -a "Your Name" 2b252ba66277 yourname/centos-php7.0-composer 

列出可用图像,您将看到新创建的图像。

docker image ls 

运行新创建的图像

docker run -it yourname/centos-php7.0-composer 

编辑

您也可以拉下来,我已经与这些步骤中创建gayansanjeewa/centos-php7.0-composer

+0

谢谢你的回应。 我想在我的生产环境中使用此泊坞容器,所以我宁愿依赖于官方包来自可信来源。 除了使用像Webtatic这样的第三方软件库以外,还有其他解决方案吗? –

+0

好像它不是可能的时刻,因为PHP7尚未被CentOS的支持。我GOOGLE了一些,结果是一样的。这可以让你使用像Ubuntu这样的图像,或者获得第三方软件包的支持。 – Gayan

+0

谢谢,所以似乎没有办法添加两个图像并构建一个新图像。例如,是否有任何方法可以在Docker Hub上基于PHP和CentOS官方图像创建图像? –