Tag: composer php PHP

在Docker容器中安装Composer会导致分段错误

我正在使用官方的PHPdocker形象: 7.1-apache 我正在尝试通过Docker控制台安装Composer,并按照以下步骤操作: https : //getcomposer.org/download/ 当我到达第三步: php composer-setup.php我得到: Segmentation fault 我只是不知道该怎么做。 当我在较低版本的PHP时,我没有安装composer php的问题。 这是我的dockerfile: FROM php:7.1-apache RUN apt-get update && apt-get install -y git # Install Xdebug RUN curl -fsSL 'https://xdebug.org/files/xdebug-2.4.0.tgz' -o xdebug.tar.gz \ && mkdir -p xdebug \ && tar -xf xdebug.tar.gz -C xdebug –strip-components=1 \ && rm xdebug.tar.gz \ && ( \ […]

警告:模块“curl”已经在第0行的Unknown中加载(从custom.php.ini文件中修复)

在网站上做了一些研究之后,出现这个错误的原因是php.ini文件很可能包含了一个引用,当它已经被编译到PHP中的时候加载扩展。 也就是说,我正在使用Docker和Docker-Compose。 我find了一种方法来保持默认的php.ini文件,任何更改将被我的custom.php.ini文件覆盖。 这是因为这个…(这只是我的docker-compose.yml文件中的一小段代码) web: build: ./ depends_on: – dblive – dbdev volumes: – ./web:/var/www – ./config/custom.php.ini:/etc/php5/apache2/conf.d/custom.php.ini 注意到我有我自己的custom.php.ini文件,它映射到PHP查找额外的php.ini文件的目录。 这完美的作品。 目前在这个custom.php.ini文件中,我有这个。 asp_tags = Off display_errors = On display_startup_errors = On 我现在正在收到一个错误… PHP Warning: Module 'curl' already loaded in Unknown on line 0 Warning: Module 'curl' already loaded in Unknown on line 0 如何编辑这个外部php.ini文件来禁用加载扩展? 可能的替代scheme 由于我运行的方式,我也有一个Docker在开始修改初始的php.ini文件时运行的运行脚本。 看起来像这样 […]

在Docker镜像中安装Composer

所以我尝试了很多方法,但是这似乎是在docker图像中安装Composer的最合法的方式: https://hub.docker.com/r/composer/composer/ 现在,当我试图做“相同”,我越来越: latest: Pulling from composer/composer Status: Image is up to date for composer/composer:latest Composer could not find a composer.json file in /app 当我运行它时: docker run –rm -v $(pwd):/app composer/composer install即使我将/ app路由改为/ var / www,我仍然得到它找不到作曲者的错误。 JSON在/应用程序。 我如何使它看起来在我需要composer php的目录? 我不明白的$(pwd)一部分,但尝试了几种方法..我没有创build任何卷使用从tutum /灯的PHP即时通讯。 我也没有使用docker-compose,所以如果可能的话,告诉我一些没有docker撰写的方法。 如果需要可以提供更多的细节。 编辑 这可能是关于卷的东西? 目前我有/var/protobuf的composer.json文件,我使用这个命令: docker run –rm -v $(pwd):/var/protobuf composer/composer install告诉它关于json文件的目录,但它仍然继续在/app ,也许我需要创build卷?

composer php有正式的docker形象吗?

当我build立一个docker镜像的时候,我一直在用shell脚本运行composer install,但是随着许多其他的调用,我的build变得非常慢,我想知道是否有更好的/不同的方式去做这件事。

Docker – PHPcomposer php – 私有存储库

我已经在OSX上克隆了一个新项目,在这个项目中,我有一个引用了私有存储库的composer.json 。 我想使用官方的Docker作曲者图片来安装所有的依赖关系。 一切正常,但问题发生在私人存储库,因为当然,composer php容器没有安装SSH密钥。 合理。 有人可以向我解释什么是从我的私人回购安装PHP依赖的“准确”的方式? 我已经阅读官方文档( https://docs.docker.com/samples/library/composer/ ),他们说: When you need to access private repositories, you will either need to share your configured credentials, or mount your ssh-agent socket inside the running container: 我在OSX上,所以安装部分不会像我在研究中发现的那样工作。 我还读到,“Docker”的方式是在作曲者的映像上没有SSH部分。 换句话说,每个容器只有一个进程。 所以我发现另一种方式是运行一个单独的SSH服务器,但我不知道这是如何工作的。 据说我会通过它连接到composer容器? 如果有人有这种问题的经验,请分享您的想法。 对不起,如果我遗漏了一些东西,请告诉我。 谢谢!

composer php用Docker写入caching

我有一个使用Docker的Php项目。 如果我需要更新供应商包,我使用类似的命令 docker run –rm -ti -v $(pwd):/app -v ~/.ssh/id_rsa:/root/.ssh/id_rsa:ro –env "COMPOSER_HOME=/home/marcosh/.composer" composer update mymodule 它的工作,但它需要很长的时间(约15/20分钟),因为composer php正在写入大量的东西到它的caching目录。 如果我使用-vvv标志,我会收到很多消息 Downloading http://packagist.org/p/ocramius/package-versions%2446ca27e48f515bdc9989565e31fa58c6972f9194a80ae68d3c167c94a7c68d51.json Writing /home/marcosh/.composer/cache/repo/https—packagist.org/provider-ocramius$package-versions.json into cache 有没有办法避免这一步? 我应该configuration不同的东西吗?

Docker – 不要删除容器中的已安装文件夹

我想阻止docker在启动后删除容器中存在但不在主机上的文件夹。 我在做什么: 我从我的项目中的所有文件挂载到容器 volumes: – ./:/var/www/html/:rw,delegated 在我的PHP / Dockerfile中,我正在执行composer install ,以便将我的composer php软件包安装到/vendor 。 供应商文件夹最初不存在于我的主机上。 RUN composer install 当我启动容器时,composer将从composer.json / lock文件中安装所有的依赖项。 当我后来连接到容器docker-compose exec php bash ,composer php供应商文件夹丢失。 看起来卷的安装是在容器启动完成之后完成的,由于主机上不存在供应商文件夹,它将从容器中删除。 但是我真正想要实现的是供应商文件夹直接同步回主机,而不是被删除。 这只是我的一个假设,我可能是错的:-) 我怎么能解决这个问题? 编辑:我想通过RUN composer install启动命令实际上执行composer php安装一次容器安装。 这是一个很好的第一步,但通过这样做,我不知道composer php安装完成后,因为它在容器内执行: Step 8/9 : CMD composer install —> Running in 93cb76f2406e —> 0ce019a1d06c compose.yml version: '3' services: php: image: $PROJECT_ID/php:$BRANCH […]

在Docker中运行包pipe理器

我已经为PHP开发的目的构build了一个图像,并且我清楚地知道,我没有真正想过如何访问我每天开发所需的工具。 例如:composer,PHP的包pipe理器,每当composer.json更新时,我都需要它运行。 我认为这是值得在同一图像内安装这些工具,但我没有办法访问它们。 所以,我可以: 为composer php创build单独的图像,并在不同的容器中运行它 在我的主机上安装composer。 我想避免选项2),但是,它有感觉像1)的设置? 你们是怎么解决这个问题的?

PHPdocker最好的方法。 在Docker内部或外部构build应用程序?

我有PHP的应用程序,如框架,库等manu依赖项。所有这些依赖关系由composer php解决。 我已经看到了两种方式来dockerize apllication 第一种方式(build造出docker)使composer install在主机上,并将完整的工程目录复制到容器后。 第二种方法(在continer内部构build)添加到Dockerfile RUN composer install ,并将parsing依赖关系parsing为docker 我认为第一个更接近docker的方式。 但是第二种方式有一些优点: 它比主机更独立。 主机不需要php,composer。 我可以添加到Dockerfile的git clone <my project>和容器将是一个足够的。 它可以build立在任何主机与docker。 这意味着一个项目build设将是高度便携的 你觉得怎么样更可取?

在composer php脚本中使用variables

编辑: 我花了一天时间才意识到这一点,但实际上这是一个反模式。 composer php不应该运行docker脚本。 我的解决办法是: "scripts": { "php bin/console/doctrine.php orm:schema-tool:create", "php bin/console/doctrine.php orm:schema-tool:update –force", "php bin/console/fixtures.php" }, — 是否有可能将variables传递给作曲脚本? 我有这个仓库中运行的仓库。 当我需要更新灯具或数据库模式或几乎所有我需要运行docker exec我想这至less是半自动的。 所以我可以input类似于composer run refresh_app东西,所有需要做的事情都完成了。 像这样的脚本: "scripts": { "db:create": "docker exec -i my_container_name bash -c \"cd /www; php bin/console/doctrine.php orm:schema-tool:create\"", "db:update": "docker exec -i my_container_name bash -c \"cd /www; php bin/console/doctrine.php orm:schema-tool:update –force\"", "db:fixtures": "docker […]