Files
mhoennigandClaude Fable 5.1 24b0a5d628
werkator build succeeded after 00:12
Mosquitto moves after all: a port that lives in a config file (#12)
0.9.0 listed mosquitto as the image werkdock cannot move, and that was
true of everything mosquitto offers: -p is ignored once a config file
declares a listener (the manual says so, and it was measured), no
environment variable names the port, and the config file expands none.
What mosquitto does read is the config file — and a config file is the
one thing werkdock can replace that a flag or a variable cannot reach.

A quirk can now name a PortFile: which file the image ships carries the
port and how the line reads. Werkdock copies that file into the instance
directory with the line rewritten to the chosen port and binds the copy
read-only over the image's original, which is never touched. Both of
mosquitto's listeners live in the same file, so the dashboard's HTTP API
on 9883 moves along with MQTT on 1883.

Measured with 2.1.2 through the API socket: two instances at once, each
on its own pair of ports, each accepting an anonymous client and
answering on its dashboard, 1883 left free.

The rewritten copy applies only while the command still names the file
and the client has not bound a file of their own over that path; either
way the copy would not be what the server reads, and the port is then
reported unmoved. An image whose file no longer has the expected line is
refused at create with the line named, not started on a port werkdock
only claimed.

Squashed from branch mosquitto-port-file and pushed to main directly.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 09:46:26 +02:00
..
2026-09-10 22:09:58 +02:00
2026-09-10 22:09:58 +02:00
2026-09-10 22:09:58 +02:00
2026-09-10 22:09:58 +02:00