为什么 pecl 在使用相同的 Dockerfile 时在另一台主机上为 xdebug 安装不同的版本?
Why does pecl install a different version for xdebug on another host when using same Dockerfile?
我有一个 php 项目。我已经使用 docker 和 docker-compose 设置了一个开发堆栈。 php 应用使用 php:7.1.2-apache
图像作为基础。
当运行:
pecl install xdebug
inside容器,我的容器安装:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
然而现在,一位同事构建了该容器并执行了调用 pecl install xdebug
的脚本,但对他们来说,它安装了一个不同的版本:
PHP Api Version: 20151012
Zend Module Api No: 20151012
Zend Extension Api No: 320151012
为什么 pecl install
在相同的 docker 安装程序上安装不同的版本?
(主要区别在于主机,我的是 Ubuntu 16.04,我的同事使用的是 MacOS;但是 docker 应该抽象出差异。)
导致 php api 版本差异的原因是什么?
我想知道实际安装的是什么版本。因为这是相关的,因为对于开发设置,我手动安装了一个配置文件,我在其中精确指向该 xdebug 文件:
$ cat docker/php/apache2/20-xdebug.ini
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
xdebug.remote_enable=1
xdebug.idekey=pstorm
xdebug.remote_autostart = 1
我没想到路径会改变。
myapp:
build: .
hostname: myapp
ports:
- "4430:443"
- "8080:80"
command: scripts/start.sh
volumes:
- ./docker/php/apache2/20-xdebug.ini:/usr/local/etc/php/conf.d/20-xdebug.ini
- ./:/var/www/myapp
- ./docker/bashrc:/root/.bashrc
我的目标是始终正确安装和加载相同的 xdebug 版本。
这是一个 docker-compose 用法错误。
我的同事做了:
$ git pull
$ docker-compose up -d
为了启动容器。由于他们过去已经构建了容器,因此没有重建容器,而是基于 php7.0
重新使用了一个过时的容器。
所以他们不得不 运行:
$ docker-compose up --build
强制重建它。然后设置脚本按预期工作。
我有一个 php 项目。我已经使用 docker 和 docker-compose 设置了一个开发堆栈。 php 应用使用 php:7.1.2-apache
图像作为基础。
当运行:
pecl install xdebug
inside容器,我的容器安装:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
然而现在,一位同事构建了该容器并执行了调用 pecl install xdebug
的脚本,但对他们来说,它安装了一个不同的版本:
PHP Api Version: 20151012
Zend Module Api No: 20151012
Zend Extension Api No: 320151012
为什么 pecl install
在相同的 docker 安装程序上安装不同的版本?
(主要区别在于主机,我的是 Ubuntu 16.04,我的同事使用的是 MacOS;但是 docker 应该抽象出差异。)
导致 php api 版本差异的原因是什么?
我想知道实际安装的是什么版本。因为这是相关的,因为对于开发设置,我手动安装了一个配置文件,我在其中精确指向该 xdebug 文件:
$ cat docker/php/apache2/20-xdebug.ini
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
xdebug.remote_enable=1
xdebug.idekey=pstorm
xdebug.remote_autostart = 1
我没想到路径会改变。
myapp:
build: .
hostname: myapp
ports:
- "4430:443"
- "8080:80"
command: scripts/start.sh
volumes:
- ./docker/php/apache2/20-xdebug.ini:/usr/local/etc/php/conf.d/20-xdebug.ini
- ./:/var/www/myapp
- ./docker/bashrc:/root/.bashrc
我的目标是始终正确安装和加载相同的 xdebug 版本。
这是一个 docker-compose 用法错误。
我的同事做了:
$ git pull
$ docker-compose up -d
为了启动容器。由于他们过去已经构建了容器,因此没有重建容器,而是基于 php7.0
重新使用了一个过时的容器。
所以他们不得不 运行:
$ docker-compose up --build
强制重建它。然后设置脚本按预期工作。