在项目根目录下执行.
debian-php-swoole:
docker build -t never615/debian-php-swoole:arm64 -f ./Dockerfile .
docker build -t never615/debian-php-swoole:arm64-4.8-php8.2 -f ./Dockerfile_4.8_php8.2 . docker push never615/debian-php-swoole:arm64_4.8_php8.2
这条构建链不继承 phpswoole/swoole,而是从麒麟 V10 SP3 ARM64 rootfs 开始,
在麒麟用户态中从源码编译 PHP 8.2.5、Swoole 5.0.3 和业务所需 PHP 扩展。
运行层同时固定安装 Composer 2.8.12(校验 SHA-256)、Git/SSH/解压工具,并创建
应用镜像需要的 www-data 账户。
先在已安装的麒麟 V10 SP3 ARM64 主机中生成 rootfs:
sudo OUTPUT=/tmp/kylin-v10-sp3-2403-arm64-rootfs.tar \
./build-kylin-v10-rootfs.sh把 tar 复制到构建机后导入并构建:
docker import --platform linux/arm64 \
/tmp/kylin-v10-sp3-2403-arm64-rootfs.tar \
kylin:v10-sp3-2403-arm64
docker build --platform linux/arm64 \
-f Dockerfile_kylin_5.0.3_php8.2 \
-t registry.cn-shenzhen.aliyuncs.com/mallto/php-swoole:kylin-v10-sp3-arm64-5.0.3-php8.2 .验证容器内的操作系统和运行时:
docker run --rm registry.cn-shenzhen.aliyuncs.com/mallto/php-swoole:kylin-v10-sp3-arm64-5.0.3-php8.2 \
sh -lc 'cat /etc/os-release; php -v; php --ri swoole | head -20'Dockerfile_kylin_amd64_5.0.3_php8.2 直接使用麒麟 V10 SP3 2403 的
linux/amd64 manifest digest,构建和运行阶段都会校验 x86_64、麒麟产品标识和
kylin-release,然后在麒麟用户态中从源码构建 PHP/Swoole。
ACR 构建规则建议固定为:
- 构建架构:
linux/amd64 - 构建上下文:
/ - Dockerfile:
Dockerfile_kylin_amd64_5.0.3_php8.2 - 镜像 tag:
kylin-v10-sp3-amd64-5.0.3-php8.2
本地或 ACR 外部预检命令:
docker build --platform linux/amd64 \
-f Dockerfile_kylin_amd64_5.0.3_php8.2 \
-t registry.cn-shenzhen.aliyuncs.com/mallto/php-swoole:kylin-v10-sp3-amd64-5.0.3-php8.2 .
docker run --rm --platform linux/amd64 \
registry.cn-shenzhen.aliyuncs.com/mallto/php-swoole:kylin-v10-sp3-amd64-5.0.3-php8.2 \
sh -lc 'uname -m; cat /etc/.productinfo; php -v; php --ri swoole | head -20'