Repository navigation
Troubleshooting
Most of what looks broken here is either macOS being correct or a limitation stated honestly. This page separates the two. The first half is about one Mac; the second is about the fleet.
Almost certainly a PATH problem, and it used to be a real bug.
A GUI-launched app does not inherit your shell's PATH. LaunchServices hands a bundled app
exactly /usr/bin:/bin:/usr/sbin:/sbin, and container lives in /usr/local/bin. Flotilla now
looks there explicitly, and the message lists every directory it searched — so if it still happens,
compare that list with which container in Terminal and set Binary path yourself in
Settings.
To reproduce a GUI launch environment from a terminal:
env -i PATH=/usr/bin:/bin:/usr/sbin:/sbin build/Flotilla.app/Contents/MacOS/FlotillaLaunching from a terminal normally hides this class of bug, because your terminal has a rich
PATH.
Two causes, and Flotilla names both:
-
No kernel. A fresh install of
containerlooks running and cannot start anything until a kernel is downloaded. Use Download Kernel in the banner. -
The service is an older build than the CLI. Upgrading
containerwithout restarting its service leavesrunfailing with no available interface strategy for network default. Flotilla shows both builds; Restart Container System, in the menu on the status bar's container dot, fixes it.
See First run for every state the preflight tells apart.
By default Flotilla starts the stopped service once after this Mac starts up, and never again
that boot, so a stop you made stays a stop. If it starts at other times, check Settings ▸
Advanced ▸ Start container by itself; if you want it never to, choose Never. An admin can
change this setting for a host, unless a profile locks it.
Expected for a locally built app. SMAppService registration can be refused for an ad-hoc-signed
bundle, and Scripts/make-app.sh signs ad-hoc. The row shows the real status — including
awaiting approval — rather than a toggle that lies.
It works with a Developer ID signed build. If it is awaiting approval, approve Flotilla in System Settings ▸ General ▸ Login Items & Extensions.
Fixed, but if you see it: switching to another app and back used to correct it. The cause was two
different mechanisms both writing window appearance and disagreeing intermittently — NSApp.appearance
is only a fallback, and a window with its own appearance set ignores it.
One authority per property is why this is no longer possible.
Known limitation. With Show Dock icon off, the Dock icon correctly disappears but a window still opens at login. Three approaches were tried and none held.
Do not expect a fix before the app moves to a real Xcode project with an NSWindow delegate.
Use alpine. Ubuntu, Debian and Fedora do not boot as machines — each pulls ~100 MB, creates a
record and dies. See Machines.
Correct behaviour. container machine set accepts changes on a running machine and applies them at
next start. Flotilla says "Saved — still running on the previous values". Stop and start
the machine, or use Apply and Restart.
There is nothing to edit. container 1.5 has no update subcommand, so no such operation exists.
Use Run Again with Changes…, which prefills a create form — and note it does not carry
environment variables or mounts, for the reason given in Containers.
If a banner says a network has lost its connection to this Mac, that is the cause: a known
container bug (apple/container#2051) in which a
network's containers can reach each other but not the Mac or the internet, and their published ports
stop answering. Restart container… in the banner fixes it. Every running container stops and is
not started again automatically, so start them, or their groups, afterwards. See
Volumes and networks.
A new named volume mounts owned by root. An image that runs as a non-root user and does not fix that itself — Redis is one — cannot write to it and exits. Use an image that handles it, or run as a user that can write there.
Switch on Live in the Logs toolbar or a container's Logs tab; otherwise each read is one bounded snapshot that updates on refresh. Live is refused above eight sources at once — narrow the Sources filter. See Logs and diagnostics.
Each stream is capped at 4 MiB per invocation. When the cap is hit the result is marked truncated — look for that marker rather than assuming the output ended naturally.
Stats are sampled as deltas between polls, so the first sample after a container starts has nothing to compare against. Give it one poll interval.
If more than one row is selected, that is deliberate. "The one you clicked" cannot be recovered from a multi-selection, so opening an arbitrary member would sometimes open the wrong container.
Check System Settings ▸ General ▸ Login Items & Extensions and approve the Flotilla Helper, then look at its state in Settings ▸ Advanced. A locally built, ad-hoc-signed Flotilla cannot use the Helper at all: each side requires the other to be signed by the same Developer ID team, and an ad-hoc build has no team. See Flotilla Helper.
Open System Settings ▸ Notifications ▸ Flotilla and choose Persistent. New installs ask for persistent alerts, but macOS reads that only once, when Flotilla first asks to notify — a Mac that already had Flotilla keeps the style it had — and lets you change it at any time. See Notifications.
Open Flotilla on the host, check it is set to Host in Settings ▸ Hosts and Fleet, and answer macOS's local network prompt. If it was denied, turn Flotilla on in System Settings ▸ Privacy & Security ▸ Local Network and reopen the app. Neither a configuration profile nor MDM can grant this, so even a managed host needs that one click.
Bonjour finds hosts on the same network only. Otherwise choose By address in Add Host and
type a name such as mini.lan or an address such as 10.0.1.20.
Use a VPN or a routed subnet, and add the host by the name or address that reaches it there. A
.local Bonjour name normally does not cross networks. Flotilla keeps the address you typed and uses
it wherever Bonjour cannot see the host — and SSH, Screen Sharing and File Sharing use it too.
container stopped, in amber, means the host's Flotilla answered and its container is not
running. Use Start on the host's page or its row menu, if the host lets its admin start and stop
container; otherwise someone at the host has to.
Not answering means the host's Flotilla did not reply. Check that Flotilla is running there, the Mac is awake and on the network, and its port (7868 by default) is reachable. A macOS notification follows after two minutes of silence, not at the first missed check.
- A host installs a Flotilla update only if Install Flotilla updates from its admin is on there, and only once it is idle. Rollouts go one host at a time and stop at the first failure, so one stuck host holds up the ones after it.
- A host on a build from before wire version 6 cannot be updated from the admin. Update it by hand once.
- A host upgrades
containerby itself only when nothing is running, because the upgrade stops every container. With containers running it waits for you: use Upgrade…, which says how many it will stop. Both need the host's Flotilla Helper switched on.
See Updates.
They can, but only through published ports. Each Mac's networks are its own, and Flotilla does not join them. DNS names across Macs resolve, but only a published port answers. See DNS.
Rosetta. container 1.5's k8s create always turns Rosetta on, so a Mac without it fails.
Install it on the Mac where the cluster will run — an administrator is asked:
softwareupdate --install-rosetta --agree-to-licenseThen create the cluster again. On a host, creation shows no progress until it finishes, which can take several minutes; wait before deciding it failed.
Expected, for now. A cluster on a host is reached with kubectl on that host; your admin Mac
cannot reach it yet, and Write Kubeconfig is for clusters on This Mac only. See
Kubernetes.
Produce a support bundle — Help ▸ Create Support Bundle…, also in the menu-bar menu's Troubleshoot. It is redacted: home paths, credentials in URLs, keys, tokens and bare account names are removed. It shows you every file before you save it, and nothing is uploaded. Check it before sharing it anyway; that is good practice regardless of what the app promises.
Flotilla — a native macOS app for Apple's container CLI. A personal project, free to use, Apache-2.0. No account, no telemetry.
Getting started
Fleet
Containers and resources
- Containers
- Groups and suggestions
- Images
- Registries
- Volumes and networks
- Kubernetes
- DNS
- Machines and containers
- Machines
- Terminal
- Files
Using Flotilla
- Menu bar and window
- Views and filtering
- Logs and diagnostics
- Sharing and export
- Flotillafile
- Settings
- Greta
- Flotilla Helper
More