
jakzal/php-intl这些Docker镜像用于在各种ICU/Intl版本环境下运行Symfony Intl组件的测试。这些镜像不用于生产系统。
如需旧版PHP或ICU版本,请查看legacy分支:
镜像标签格式为PHP版本与ICU版本,中间用连字符分隔。例如,PHP 8.0和ICU 68.2对应的标签为8.0-68.2。
bashdocker run -it --rm \ -v `pwd`:/symfony -w /symfony \ jakzal/php-intl:8.0-68.2 \ ./phpunit /symfony/src/Symfony/Component/Intl/Tests/
运行以下命令可列出所有可用标签(需安装jq工具):
bashcurl -Ls [***] | jq .[].name --raw-output
以下命令将重新生成所有用于构建带intl支持的PHP镜像的Dockerfile:
bashmake generate
构建所有镜像(耗时较长):
bashmake build-all
构建最新PHP版本与最新ICU版本的镜像:
bashmake build
构建最新PHP版本与指定ICU版本的镜像:
bashmake build ICU_VERSION=68.2
构建指定PHP版本与指定ICU版本的镜像:
bashmake build ICU_VERSION=68.2 PHP_VERSION=8.0
建议在原生支持Docker的系统上运行这些测试。若非Linux桌面用户,可通过docker-machine轻松创建digitalocean droplet(或使用其他云服务提供商):
bashdocker-machine create --driver digitalocean --digitalocean-access-token $DIGITAL_OCEAN_ACCESS_TOKEN \ --digitalocean-image "ubuntu-19-04-x64" \ --digitalocean-size "4gb" \ --digitalocean-region "lon1" \ symfony-intl eval "$(docker-machine env symfony-intl)" docker run --rm -it jakzal/php-intl:8.0-68.2 bash
克隆Symfony仓库并切换到要测试的分支:
bashgit clone [***] \ && cd symfony \ && git checkout icu-68.2 \ && composer install
运行所有intl-data测试:
bash./phpunit --group intl-data
测试完成后销毁droplet:
bashdocker-machine rm symfony-intl

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务