kiwicom / loopbind
🛠️️ CLI 工具,用于轻松地将本地网络接口与附加 IP 绑定,并确保在 /etc/hosts 中的匹配记录。
Requires
- php: >=8.0
- ext-iconv: *
- ext-json: *
- ext-mbstring: *
- contributte/console: ^0.9.0
- nette/schema: ^1.2
- nette/utils: ^4.0
Requires (Dev)
- pepakriz/phpstan-exception-rules: ^0.12.0
- phpstan/extension-installer: ^1.2
- phpstan/phpstan: ^1.9
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-strict-rules: ^1.4
- phpunit/phpunit: ^10.0
- spaze/phpstan-disallowed-calls: ^2.11
- spaze/phpstan-disallowed-calls-nette: ^2.0
- symplify/easy-coding-standard: ^12.0
This package is not auto-updated.
Last update: 2024-09-20 19:30:07 UTC
README
🛠️️ CLI 工具,用于轻松地将本地网络接口与附加 IP 绑定,并确保在 /etc/hosts 中的匹配记录。
这是一个辅助工具,通过 composer global
安装,用于那些已经准备就绪并绑定本地主机子网块 IP 的 Docker 组合(通过 docker-compose.yaml
)的机器,允许多个此类组合并行运行(通过 IP 区分)。
实际上,这个工具确保本地网络接口(在 OS X 上为 lo0
)也将有另一个来自本地主机子网块的 IP(例如 127.0.0.2
),并且 /etc/hosts
中将有特定的域名路由到该 IP(例如 127.0.0.2 example.test
)。
支持的平台
所需的基本工具
sudo
ifconfig
sed
安装
运行
composer global require kiwicom/loopbind
然后,如果您在 PATH
上有 composer 的 bin 目录,您可以通过在 CLI 中调用 loopbind
来使用它。因此,您可以使用 CLI 向导初始化配置。
$ loopbind init > ENV variable name to extract IP address from (leave empty if you want to provide manually or want random one): > > Do you want to generate random free local IP: > > [0] yes > [1] no > > no > IPv4 address from local block: > 127.0.0.1 > Hostname (leave empty to continue): > hostname > Hostname (leave empty to continue): > > New config file `.loopbind.json` was created. > Do you want to create .env file with variable IP: > > [0] yes > [1] no > > yes > File `.env` was created with variable `IP` set to `127.0.0.2`. > You appear to have .docker-compose.yml file in your directory. Run `docker compose stop`, replace port binding from `"80:80"` to `"$IP:80:80"` and then `docker copmose up`.
用法
在项目根目录下定义一个名为 .loopbind.json
的文件,内容如下:
{ "localIPAlias": "127.11.23.1", "hostname": "foobar.test" }
或者当您需要绑定多个主机名时
{ "localIPAlias": "127.11.23.1", "hostname": ["www.foobar.test","foobar.test"] }
然后在此目录下运行 loopbind apply
以运行确保绑定的命令。您还可以运行 loopbind unapply
来删除绑定,并运行 loopbind show
来显示配置及其状态。
这些命令是幂等的,因此重复的 apply/unapply 不会做任何事情(apply 命令甚至不需要再次运行命令)。
请注意,配置预期位于当前工作目录中。
开发
该项目使用以下编码标准
- PHPCS
- PHPStan 分析(
composer stan
) - PHPUnit 测试。(
composer unit
)
然而,由于预期的副作用(运行后更改计算机配置)和 KISS 原则的应用,只有功能子集被自动测试。因此,
ApplyCommand
UnapplyCommand
应手动进行测试。