version: '3' services: lskypro: # 本 fork 的镜像(含 iOS 长按菜单修复) image: ghcr.io/mole404/lsky-pro-docker:latest restart: unless-stopped hostname: lskypro container_name: lskypro environment: - WEB_PORT=8089 # ---- Apache MPM(并发/内存占用):不写就用镜像内置的低配默认值 ---- # 逐项覆盖:写哪个改哪个,没写的保持默认。默认见 README「Apache MPM」一节: # StartServers 2 / MinSpareServers 1 / MaxSpareServers 3 / # MaxRequestWorkers 5 / MaxConnectionsPerChild 5 / KeepAlive Off # 例:并发大一点、子进程处理 5000 个请求后回收(0 = 永不回收,合法但内存只涨不落) # - APACHE_MAX_REQUEST_WORKERS=25 # - APACHE_MAX_CONNECTIONS_PER_CHILD=5000 # 例:开 KeepAlive。省内存建议把超时压到 2 秒;两个可选变量不设就跟随 Apache # 发行版默认(5 秒 / 100)。别写 0 —— 那是「不限制」,不是「更省」。 # - APACHE_KEEP_ALIVE=On # - APACHE_KEEPALIVE_TIMEOUT=2 # - APACHE_MAX_KEEPALIVE_REQUESTS=50 # 例:其余三个一般不用动 # - APACHE_START_SERVERS=2 # - APACHE_MIN_SPARE_SERVERS=1 # - APACHE_MAX_SPARE_SERVERS=3 # 写错值只会把那一项退回默认值 + 日志警告,不会让容器起不来。 # # ---- PHP memory_limit(测试版默认 64M):不写就用镜像默认 64M ---- # 运行期覆盖、**不用重建镜像**。只接受 <数字>[KMG] 形状(如 256M / 1G), # 脏值只忽略这一项并警告,不会让容器起不来。 # ⚠ 上传/表单上限仍是 100M(post_max_size / upload_max_filesize):处理大图若撞到 # 64M 上限,把它抬高(或调低那两个上传上限)。 # - PHP_MEMORY_LIMIT=256M volumes: - $PWD/web:/var/www/html/ ports: - "9080:8089" networks: - lsky-net # 默认用 SQLite(镜像自带,无需额外服务)—— 这也是本 fork 线上跑的方式。 # # 想用 MySQL 就自己加一个 service,参考(注意两点: # ① 密码**不要写死在 yaml 里**,从环境变量取,例如同目录建一个 .env 写 MYSQL_ROOT_PASSWORD=... # ② 镜像别用 mysql:5.7(2018 年的版本、5.7 已 EOL),至少 8.0/8.4; # 8.4 起默认认证插件变了,若沿用旧的 mysql_native_password 连接方式要先改应用侧配置): # # mysql-lsky: # image: mysql:8.0 # restart: unless-stopped # hostname: mysql-lsky # container_name: mysql-lsky # volumes: # - $PWD/mysql/data:/var/lib/mysql # environment: # MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:?请在 .env 里设置 MYSQL_ROOT_PASSWORD} # MYSQL_DATABASE: lsky-data # networks: # - lsky-net networks: lsky-net: {}