Features05 Stacks

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.

Fig. — The mongodb stack: four services, the compose file it came from, and a swarm that matches it.

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.

Fig. — Stack files: a folder per stack, and the compose file of whoami in the editor, ready to deploy.

All features

Try it on your own swarm.
Free, with the source on Codeberg. An installer for Windows 10 and 11 that installs nothing on the swarm.
Download for Windows
Version 1.8.0 · Docker-Swarm-MX-Setup.exe