Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel的Docker容器:CentOS 7.x上的PHP7.x_Php_Linux_Laravel_Docker_Containers - Fatal编程技术网

Laravel的Docker容器:CentOS 7.x上的PHP7.x

Laravel的Docker容器:CentOS 7.x上的PHP7.x,php,linux,laravel,docker,containers,Php,Linux,Laravel,Docker,Containers,我的应用程序基于Laravel框架,我需要使用以下规范构建Docker容器: CentOS/RHEL 7.x PHP7.x PHP扩展: OpenSSL PDO Mbstring 分词器 XML 但问题是: DockerHub上的官方PHP图像是基于Ubuntu的,但我更喜欢RHEL/CentOS上的PHP而不是Ubuntu。 CentOS官方Yum repositories上的最新PHP版本为5.4.16,低于Laravel要求的版本。基于distrowatch.com,RHEL的存储库中似乎

我的应用程序基于Laravel框架,我需要使用以下规范构建Docker容器:

CentOS/RHEL 7.x PHP7.x PHP扩展: OpenSSL PDO Mbstring 分词器 XML 但问题是:

DockerHub上的官方PHP图像是基于Ubuntu的,但我更喜欢RHEL/CentOS上的PHP而不是Ubuntu。 CentOS官方Yum repositories上的最新PHP版本为5.4.16,低于Laravel要求的版本。基于distrowatch.com,RHEL的存储库中似乎仍然有相同的旧版本PHP。 我不能相信非官方图片,所以解决方案应该只基于官方图片。 我想在我的生产环境中使用这个容器,所以我更依赖于可信资源,而不是像WebStatic这样的第三方存储库。 有没有办法在基于CentOS的Docker容器上安装最新版本的PHP?例如,是否可以同时基于官方图像和官方图像制作图像


抱歉,如果我的问题听起来很愚蠢,我还是Docker的新手,在网上阅读了文档和许多文章之后,我还没有找到我的答案。

我按照以下步骤成功地用php 7.0创建了图像

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

docker run -it centos
我按照上面提到的步骤设置php7。要安装,首先必须将与CentOS/RHEL版本相对应的webel-yum存储库信息添加到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
安装PHP7

yum install php70w php70w-opcache
通过以下方式安装软件包:

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
编辑


您还可以下拉我通过这些步骤创建的文件。

您可以先下拉CentOS官方图像,然后在其上使用yum安装php 7和其他php库。然后,您可以将生成的容器作为新映像提交,并将其用于您的目的。感谢您的及时回复。问题在于,官方RHEL/CentOS Yum存储库中可用的PHP最高版本是5.4.16。可以通过添加WebStatic存储库或从源代码处编译来安装这些软件包,但这对生产不安全。感谢您的回复。我希望在我的生产环境中使用这个Docker容器,因此我更依赖于来自可信来源的官方软件包。除了使用像WebStatic这样的第三方存储库之外,还有其他解决方案吗?因为centos还不支持php7,所以目前似乎不可能。我在谷歌上搜索了更多,结果是一样的。这取决于你是否使用了像Ubuntu这样的图像,或者是否获得了第三方软件包的支持。谢谢你,所以似乎没有办法添加两个图像并构建一个新的图像。例如,有没有办法在Docker Hub上制作基于PHP和CentOS官方图像的图像?