傻逼x 店 php m 芯片 mac 踩坑实录
背景
yii2 框架开发的商城代码,域名授权,文件加密,需要用到 xx.license 和swoole_loader.so
提供了,windows 和 mac ,线程和非线程安全的swoole_loader.so 都有,但是没有 mac 的
解决办法
1、 docker compose或者 docker file里面 注明平台是platform: linux/amd64
2、docker 通用设置 (general)里面 虚拟机设置 (Virtual Machine Options) 取消勾选 Use Rosetta for x86_64/amd64 emulation on Apple Silicon
这个是我的 docker compose文件
services:
php:
platform: linux/amd64
build:
context: .
dockerfile: docker/php/Dockerfile
container_name: linli-php
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
TZ: ${TZ:-Asia/Shanghai}
DB_HOST: ${DB_HOST:-mysql8}
DB_PORT: ${DB_PORT:-3306}
DB_NAME: ${DB_NAME:-linli}
DB_USERNAME: ${DB_USERNAME:-root}
DB_PASSWORD: ${DB_PASSWORD:-admin123}
REDIS_HOST: ${REDIS_HOST:-host.docker.internal}
REDIS_PORT: ${REDIS_PORT:-6379}
REDIS_DB: ${REDIS_DB:-0}
volumes:
- ./:/var/www/linli_php
- ./docker/php/conf.d/app.ini:/usr/local/etc/php/conf.d/99-app.ini:ro
- ./docker/php/conf.d/swoole-loader.ini:/usr/local/etc/php/conf.d/99-swoole-loader.ini:ro
- ./docker/php/php-fpm.d/zz-listen.conf:/usr/local/etc/php-fpm.d/zz-listen.conf:ro
- ./docker/php/ext/swoole_loader.so:/usr/local/lib/php/extensions/no-debug-non-zts-20190902/swoole_loader.so:ro
- ./docker/php/ext/chidian.license:/usr/local/lib/php/extensions/no-debug-non-zts-20190902/swoole_loader/chidian.license:ro
ports:
- "9008:9008"
networks:
- my_custom_net
networks:
my_custom_net:
external: true
php dockerfile
FROM php:7.4-fpm
RUN apt-get update
&& apt-get install -y --no-install-recommends
git
unzip
libfreetype6-dev
libjpeg62-turbo-dev
libpng-dev
libzip-dev
&& docker-php-ext-configure gd --with-freetype --with-jpeg
&& docker-php-ext-install -j"$(nproc)"
bcmath
gd
mysqli
pcntl
pdo_mysql
sockets
zip
&& pecl install redis-5.3.7
&& docker-php-ext-enable redis
&& rm -rf /var/lib/apt/lists/*
WORKDIR /var/www/linli_php
浙公网安备 33010602011771号