使用 composer 容器构建 PHP 依赖

 Technique  1 comment

正常安装 composer 需要系统内有完整 PHP 运行环境,对于仅仅构建依赖来说过于复杂,也不方便操作。

依赖于容器技术,便很简单实现此功能。本文以 macOS Mojave 为例演示。

环境

首先安装 Docker Desktop ,点击此处进行跳转官网进行下载安装。

小贴士:下载 Docker Desktop for Mac 需要 Docker 账户,申请即可。

双击打开安装即可。

镜像

拉取官方镜像即可。

# docker image pull composer:latest

若对版本有要求,可指定版本进行拉取。

# docker image pull composer:1.9

使用

使用教程非常简单,一条命令即可完成全部操作,以构建依赖为例。

进入到 PHP 项目中,执行

# docker run --rm --interactive --tty   --volume $PWD:/app   composer require ipip/db
Using version ^1.0 for ipip/db
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing ipip/db (v1.0.0): Downloading (100%)         
Writing lock file
Generating autoload files

注意:此处以项目 ipdb-php 为例。

执行完毕可看到依赖已经构建完毕。

localhost:IPDB kane$ ls -lh
total 16
-rw-r--r--  1 kane  staff    53B Sep 17 16:59 composer.json
-rw-r--r--  1 kane  staff   2.1K Sep 17 16:59 composer.lock
drwxr-xr-x  5 kane  staff   160B Sep 17 16:59 vendor

补充

若对部分存在系统依赖的组件进行操作会报错,提示系统不存在此插件,可以使用以下参数进行忽略。

% docker run --rm --interactive --tty \
  --volume $PWD:/app \
  --user $(id -u):$(id -g) \
  composer require sentry/sdk:2.0.3 --ignore-platform-reqs

小贴士:仅仅用于本地补全组件,实际使用时还需要依赖才能运行,因此请确保生产环境存在所需依赖。

附录

参考链接

回复
  1. Quarter

    确实超级方便,不用再安装各种依赖啦!

    Quark 3.6.1.121 Android Pie 回复