A stack and its compose file, side by side.
The stacks with their services and running updates, compared with the compose file they came from. Deploy or update from a compose file with its .env, after a preview of what changes and what stands out, and edit the files in the app, with Docker checking them before they are saved.
What you can do
Compared with its file
For a stack the app deployed itself, it knows the compose file and compares the swarm with it: image, replicas, mode, and services that are missing or extra, using docker compose config.
Everything about one stack
A stack has a page of its own: its services, its tasks, the logs of all its services, what it uses, and its compose file.
Deploy or update
Deploy or update a stack from a compose file with docker stack deploy --with-registry-auth, with the output shown live and an option to remove services that are no longer in the file (--prune).
A preview first
The dialog shows what changes (new services, another image, mode or number of replicas, and services that are no longer in the file), the ports it publishes, and what stands out on the machine: a Compose project with the same name, a volume or network that already exists outside the swarm, a network left over from an earlier stack, or a folder of the host on a swarm with more nodes. A volume of a Compose project blocks the deploy until you accept that the stack shares its data.
Resilience
The page of a stack points out services with a single replica and no data, and updates that do not roll back when they fail, with the setting to put in the compose file.
An engine in WSL
When the engine runs in WSL on this computer, a Windows folder in a bind mount (also ./html next to the file) becomes /mnt/c/…: the app deploys a temporary copy of the file with those paths, and removes it afterwards.
The .env next to it
docker stack deploy ignores the .env next to the compose file; the app passes its variables on. A variable from the Windows environment goes first.
Remove a stack
Removes everything that belongs to it: services, networks, secrets and configs. Volumes stay. You type the stack name to confirm.
Stack files
One folder (%USERPROFILE%\docker-stacks by default) with a folder per stack, holding its compose file, its .env and the files they name. Create, rename, move to the recycle bin, deploy, or import a compose file from elsewhere together with the files it names. This page also works without a manager.
An editor that checks
Edit the files in the app, with YAML and .env highlighting. Before a compose file is saved, docker stack config reads it, so a typo does not reach the swarm, and you get a warning when the file changed on disk in the meantime.
Example
Change a tag, save, deploy. The stack matches its file again.
Change the image tag of api in shop/compose.yaml and save: Docker reads the file first. Deploy, and the stack page says the swarm matches its file again.
All features