我正在尝试使用docker映像,并且根据我的使用方式,它表现出不同的行为。
图片为https://hub.docker.com/r/chriszarate/wordpress-phpunit/
Github是https://github.com/chriszarate/wordpress-phpunit
用法1-在本地构建
docker-compose -f docker-compose.yml run --rm wordpress_phpunit php -v
输出:
PHP 7.2.10 (cli) (built: Sep 17 2018 09:23:43) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.10, Copyright (c) 1999-2018, by Zend Technologies
with Xdebug v2.6.1, Copyright (c) 2002-2018, by Derick Rethans
用法2-在我的docker-compose.yml中使用它
version: "3"
services:
wordpress_phpunit:
image: "chriszarate/wordpress-phpunit"
Run docker-compose -f docker-compose.yml run --rm wordpress_phpunit php -v
输出:
PHP 7.1.5 (cli) (built: May 13 2017 10:49:18) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.5, Copyright (c) 1999-2017, by Zend Technologies
with Xdebug v2.5.3, Copyright (c) 2002-2017, by Derick Rethans
请注意,用法1 安装 PHP 7.2.10 ,而用法2 安装 PHP 7.1.5 < / p>
我看过Docker集线器,它具有git存储库中的最新更改。
我在这里想念东西吗?
答案 0 :(得分:1)
这就是可能发生的事情:
phpunit-docker/6.0.6
码头工人镜像最初是构建并推送到码头仓库中的。那时,PHP 7的版本为7.1.5,因此Dockerfile将该版本内置到映像中。
然后构建了chriszarate/wordpress-phpunit
泊坞窗映像。由于它基于phpunit-docker/6.0.6
,因此生成的映像已内置了PHP 7.1.5。
然后,过一段时间,phpunit-docker/6.0.6
被构建并再次推送到docker存储库。除非这次,PHP 7的版本为7.2.10。这绝对是奇怪的,但是也许应该不会发生。
因此,在这种情况下:
docker pull chriszarate/wordpress-phpunit
,您将获得PHP 7.1.5,因为它已内置在Docker存储库中存储的映像中,git pull
与其相应的项目相反,然后然后在本地构建,则它将基于最新的phpunit-docker/6.0.6
映像,因此运行PHP 7.2.10。请注意,可能还有其他解释。不过,这似乎足够合理。