Composer装在本地还是服务器还是Docker容器里?
最近在学习Docker,用一台虚拟机启动了Nginx+MariaDB+PHP-FPM-Redis四个容器,打算通过composer create-project laravel/laravel example
安装个PHP框架试试,突然不知道该把Composer
装在哪里?
大家都是装哪里?
装本地然后再上传吗?
虚拟机就装了一个Docker
,没有PHP
环境,也装不了Composer
还是装PHP-FPM
的容器里,说到这个容器,里面ps
和kill
命令都不支持。
如果你有使用 Docker 数据卷,将项目文件映射到了宿主机 那么在宿主机中 使用 Composer, 容器中的项目目录也会更新 如果没有就在容器中安装 Composer
装在容器里,特别是有多版本的,必须装容器里
装在php容器里
我是专门build了一个独立的composer容器做软件用,镜像制作和使用方法,可以参考我项目的写法:
这样的话,直接在宿主机执行composer,就是启动了一个一次性容器进行构建项目,执行完毕之后,这个容器就销毁了,不会污染宿主机
你可以看下 laradock , laravel+docker
用完即丢,即需要 composer 的时候,直接 docker run 一个 composer 容器,把项目目录挂载进去,执行完了就销毁容器
其实。。。 composer 给出了一种解决方案(看
Troubleshooting
)。在 PHP 的 dockerfile 中添加应该安装在 CI 服务器上, 是 CI过程的一部分,不应该安装在 生产服务器上
无论装在哪里,最终都要在容器内执行,为了保证环境的一致性,最好是放在容器里!