Workerman requires pcntl and posix on Linux; without them the relay
printed "Please install pcntl extension" and exited immediately,
Docker kept restarting it, and nginx's DNS lookups for
dmtools-puzzle-relay intermittently failed whenever it happened to be
down mid-restart - the "could not be resolved" errors were a symptom
of this crash loop, not a separate networking problem. Local dev never
hit this because Workerman's Windows code path doesn't need either
extension.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Hand-managed apk build deps + docker-php-ext-install was failing to build
on the server. Switch to the extension-installer image (same approach the
escapepage stack uses), which resolves system libs itself.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- docker/php/php.ini: upload_max_filesize 8M / post_max_size 10M
- docker/nginx/default.conf: client_max_body_size 10M
- ArtworkType: Image maxSize 8M with a clear message + help text
(local C:\php\php.ini was bumped from 2M the same way — not in the repo)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>