Skip to content

Releases

eDock 0.6.5

Choose a tag to compare

@kwhorne kwhorne released this 15 Nov 16:16

docker cp works as it does with Docker

  • docker cp container:/folder/. here/ copies the folder's contents, as Docker does. Before, it copied the folder itself, so the files landed in here/folder/….
  • Files copied into a container keep the owners the archive gives them, as with Docker: docker cp from your Mac makes them your user's, and an archive's own owners stay. Before, every file became root's. docker cp -a makes them the container user's (root's for a container running as root).

Smaller fixes

  • Engine › Builds & import says the builder pauses when it's idle and resumes for the next build, which is what it does. It used to say it stops.
  • When you restore a Compose service's snapshot, the dialog says the container it replaces is kept as a snapshot.
  • edock with no arguments lists every command and option: setup --domains, --docker-socket and --no-domains; machine start, restart, --image, --systemd, --ssh-agent and shell -- CMD; import orbstack image|volume|container.

Under the hood

  • The engine no longer carries code for Windows and WSL from the project it was forked from: about 1,150 lines less.
  • The documentation was checked against the code, claim by claim, and corrected where they differed.

Download

eDock-0.6.5-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves; afterwards, press Restart engine on the Engine page.

Credits

eDock's engine is a fork of Kiri by Canestack Labs and the Kiri contributors, under Apache-2.0. The guest Linux kernel is GPL-2.0; its source is attached to this release.

eDock 0.6.4

Choose a tag to compare

@kwhorne kwhorne released this 15 Nov 14:13

A quality release, from going through every page of the app on eDock and on OrbStack.

Fixed

  • Images no longer turns blank when two tags name the same image (redis:8-alpine and redis:alpine).
  • Volumes shows each volume's size again, on eDock, OrbStack and Docker.
  • Restart engine starts the containers that were running again, as it says it will. Before, they stayed stopped.
  • Error messages show only what went wrong, without elyra command "…" failed: in front.
  • A container's web address with no web page behind it (a database, a worker with no ports, a server still starting) shows a page that says why, instead of an empty reply.
  • When the engine starts while its old process still holds the domain ports, it tries again for a few seconds instead of leaving container domains off until the next restart.
  • Files says so when an image has no find to list folders with (on OrbStack and Docker), instead of showing an empty folder.
  • A container that has stopped shows its exit code: exited (3) on its page, Exited (3) 16 minutes ago in the list.
  • ⌘K lists matching containers before New service, and offers Start eDock engine only while the engine isn't running.
  • A volume's users no longer include eDock's own helper containers.
  • Requests: a request that failed shows how long it took, and No response instead of No response yet.

Details

  • Uptime reads as docker ps words it: Up About a minute, not Up 1 minutes.
  • 1 line, not 1 lines, and the log's line count stays on one line.
  • The sidebar leaves out memory while the VM sleeps, instead of showing 0.0 GB.
  • A container whose image has no name shows a short ID.
  • Screen readers: checkboxes, the Remove buttons on a container's and a volume's pages, and the menu bar's open buttons have names.

Download

eDock-0.6.4-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves; afterwards, press Restart engine on the Engine page.

Credits

eDock's engine is a fork of Kiri by Canestack Labs and the Kiri contributors, under Apache-2.0. The guest Linux kernel is GPL-2.0; its source is attached to this release.

eDock 0.6.3

Choose a tag to compare

@kwhorne kwhorne released this 15 Nov 12:29

A quality release: fixes from a review of everything added since 0.4.0, with no new features.

Snapshots

  • When you restore a container, it keeps its anonymous volumes, the ones an image declares (a database's data). A container with a bind mount used to come back with an empty one.
  • When you restore a Compose service's container, the one it replaces is kept as a snapshot (Before restoring …), not as a second container of the same service that Compose would trip over.
  • Two snapshots taken in the same second get their own names. Before, the second replaced the first.

Files and volumes

  • Uploading a file of 8 GiB or more works. Before, the upload failed.
  • Save writes to a temporary file and moves it into place when it's complete, so a save that fails leaves the existing file as it was.
  • A container or folder that's gone says so, instead of asking you to restart the engine.
  • Clicking quickly between folders shows the last one you clicked.
  • Long link targets and file names in eDock's own archives are read correctly.
  • An import that fails no longer leaves an empty volume behind.

Engine and app

  • Just after a container starts, the Finder view and the Files tab no longer show the VM's own files.
  • Two requests at once to share the same Kubernetes address open one port, not two.
  • The HTTP inspector keeps only the start of a large body and no longer slows big downloads through *.edock.localhost.
  • edock usb --json works on its own.
  • AI agents can run images given by digest (image@sha256:…).
  • On Docker and OrbStack, a command that worked is no longer sometimes reported as exit -1.
  • The check for an old edock on your PATH runs your login shell at most once a minute, and a shell that hangs is stopped.
  • The menu bar, the build page and Compose's combined logs do less work when a lot happens at once.

Download

eDock-0.6.3-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves; afterwards, press Restart engine on the Engine page.

Credits

eDock's engine is a fork of Kiri by Canestack Labs and the Kiri contributors, under Apache-2.0. The guest Linux kernel is GPL-2.0; its source is attached to this release.

eDock 0.6.2

Choose a tag to compare

@kwhorne kwhorne released this 15 Nov 09:48

Fixes

  • A container's Files tab on eDock shows its volumes and bind mounts as the container sees them, also in images without a shell or find (scratch and distroless images, ElyraSQL's data folder). ~/eDock in Finder shows them too.
  • While eDock measures disk usage, a container that closes its input (docker exec -i … tar) or a forwarded connection no longer waits for the measuring to finish.
  • docker cp into a container can no longer lose its connection in a rare case inside the VM.
  • Askr serves only project folders: /Users, /Volumes and the temporary folders, never /etc or /var. It gets a writable HOME, and New service says how a project reaches a database on your Mac (DB_HOST=host.docker.internal).
  • Container domain links show only while the domain router answers (not while a container publishes its port).
  • In a volume's files, a link to the volume's top opens the top.

Download

eDock-0.6.2-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves; afterwards, press Restart engine on the Engine page.

Credits

eDock's engine is a fork of Kiri by Canestack Labs and the Kiri contributors, under Apache-2.0. The guest Linux kernel is GPL-2.0; its source is attached to this release.

eDock 0.6.1

Choose a tag to compare

@kwhorne kwhorne released this 15 Nov 08:51

Fixed: containers that failed to start, or never did

A container started while eDock measured disk usage (the Volumes page, docker system df) could fail at once with exit code 127 (“switch user: No such file or directory” or “executable file not found”), or hang before its program ran. The VM's agent measured on a second thread, and a container started from a multi-threaded process inherited that state. It now measures in a separate process, so starts are never affected.

New services

New service gains three:

  • ElyraSQL: MySQL-compatible, one file, with vector search (mysql://root:elyrasql@localhost:3307/elyra).
  • SQL Anywhere: SQLite over HTTP and WebSockets (http://localhost:8080).
  • Askr: a PHP 8.5 app server for a project folder on your Mac; Laravel runs in worker mode.

Fixes

  • A volume's page shows the volume's files (it showed an empty folder on eDock's engine), and a container's Files tab shows what's in its volumes and bind mounts.
  • Cloning a volume copies from volume to volume inside the VM, never through the Mac; an export or import that's cut short says so.
  • Leaving a volume's page while its helper starts no longer leaves the helper running.
  • edock k8s delete (and changing the cluster's settings) no longer leaves three anonymous volumes behind.
  • Responses through *.edock.localhost that take longer than 30 seconds (server-sent events, slow pages) are no longer cut.
  • Ports changed in the app show in docker inspect, and survive restoring a snapshot.
  • Volume snapshots are kept per engine, so OrbStack's postgres and eDock's don't mix.
  • edock machine create and edock k8s start use the image eDock has when the registry can't be reached.
  • sudo in Linux machines keeps the Mac's SSH agent.
  • Combined Compose logs: a note when the filter hides every line, and the last line of a stopped service is kept.
  • AI agents' runs are kept out of the container list; BuildKit doesn't raise memory alerts; every change an agent makes shows a note.

Download

eDock-0.6.1-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves; afterwards, press Restart engine on the Engine page.

Credits

eDock's engine is a fork of Kiri by Canestack Labs and the Kiri contributors, under Apache-2.0. The guest Linux kernel is GPL-2.0; its source is attached to this release.

eDock 0.6.0

Choose a tag to compare

@kwhorne kwhorne released this 15 Nov 00:02

Compose projects as a whole

A project's header now has:

  • All its logs: every service's log as one, in time order, each service in its own colour; click one to hide it.
  • Rebuild & up: docker compose up -d --build from the project's own files and folder, with its output as it runs.
  • Its folder, a click from Finder, Terminal or your editor (Cursor, VS Code, Zed and others).

Volumes, without a container

Click a volume for its files: browse, preview, save to the Mac, put files in, remove. A small helper does it and goes away when you leave. Volumes can also be cloned, and exported to one .tar and imported again, owners kept.

Notifications

A macOS notification when a container runs out of memory or turns unhealthy; click it for the container's log. At most one per container every ten minutes. Engine › Overview › Notifications turns them off.

Your Mac's SSH agent in Linux machines

New machines can use the Mac's SSH agent (on by default), so git and ssh in them use your Mac's keys, which never leave the Mac.

Builds and their images

A completed build shows the image it made: its size against the last build of the same name, and Inspect image and Scan. Engine › Builds & import also has:

  • docker build uses: docker's context, or eDock always;
  • a speed test: how long a container takes on eDock and on the other engines on your Mac;
  • the engine log.

The Command line card warns when an older edock comes first on your PATH.

Engine

  • The engine sends Docker's oom event when the kernel kills a container for memory.
  • edock build-with --json, edock builds layers BUILDER ID and edock machine create --ssh-agent.

Fixes

  • A container's Files tab on eDock now shows folders inside volumes and bind mounts too (a database's data folder, say).
  • eDock's helper containers (snapshots, the speed test, volume files) are listed with eDock's own, not yours.

Download

eDock-0.6.0-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves; afterwards, press Restart engine on the Engine page.

Credits

eDock's engine is a fork of Kiri by Canestack Labs and the Kiri contributors, under Apache-2.0. The guest Linux kernel is GPL-2.0; its source is attached to this release.

eDock 0.5.0

Choose a tag to compare

@kwhorne kwhorne released this 14 Nov 22:18

AI agents (MCP)

eDock is an MCP server. Claude Code, Claude Desktop, Cursor and VS Code can see your containers, read their logs, check ports, scans and requests, and run commands in throwaway containers (no network unless asked). Anything that changes something is asked in the agent's app first. Engine › AI agents has the command to copy.

Requests: an HTTP inspector

Requests records each request through http(s)://<name>.edock.localhost: method, URL, headers, bodies (gzip undone, JSON indented), status and timing. Filter by status or container, copy a request as curl, or replay it. Off until you start recording; kept in memory only.

Snapshots

Take a snapshot of a container's files or a volume's, and go back to it later. Restoring a container keeps the one it replaces, renamed. Works on any engine.

Files

A container's new Files tab browses its folders, previews files, saves a file (or a folder as a .tar) to the Mac, takes files dropped on the window, and removes them. On eDock it works with any image, even without a shell.

New service, and ⌘K finds things

New service on the Containers page (and in ⌘K) starts PostgreSQL, MySQL, MariaDB, Redis, MongoDB, RabbitMQ, Mailpit or MinIO for development: data in a volume, its port on your Mac, the connection string copied. ⌘K now also finds containers, images, Linux machines and Kubernetes pods by name.

USB devices (beta)

Engine › USB hands a serial adapter, Zigbee stick or development board to eDock's containers (--device), and gives it back.

Fixes

  • The Containers page and the menu bar's popover show an empty state when only eDock's own containers exist, and the counts leave those out.
  • Kubernetes forwards live in the engine: they survive the app closing, and the same service forwarded twice gets the same port.
  • The welcome's steps act on eDock's engine even while another is shown.
  • Error notes show in red, as they were meant to.
  • Build times show properly for builds still running or cut off.
  • Docker compatibility: image labels (docker inspect, docker images --filter label=…), and a container's HostConfig.Binds, PortBindings and the like in docker inspect, so tools that make a container again from its inspect keep its mounts and ports.

Download

eDock-0.5.0-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves; afterwards, press Restart engine on the Engine page (Requests and Files need the new engine).

Credits

eDock's engine is a fork of Kiri by Canestack Labs and the Kiri contributors, under Apache-2.0. The guest Linux kernel is GPL-2.0; its source is attached to this release.

eDock 0.4.0

Choose a tag to compare

@kwhorne kwhorne released this 14 Nov 20:59

Welcome

The first time eDock opens, it walks you through getting set up, each step one click and each one skippable:

  1. Start the engine.
  2. Set up the terminal: docker, Compose and buildx, without a package manager.
  3. Bring your images, volumes and containers over from OrbStack or Docker Desktop.
  4. Trust HTTPS for https://<name>.edock.localhost.

⌘K › Welcome shows it again any time.

Builds

A new Builds page lists every docker build on eDock, with its status, steps, how much came from the cache, and how long it took. Open one to see each step's log. A failed build shows its error and the failed step at the top. From the terminal: edock builds.

Kubernetes: Forward to Mac

A ClusterIP service's ports now have Forward. It opens the service on localhost, like kubectl port-forward, without kubectl. The service shows the link until you stop it.

Proxy

Engine › Network gathers container domains, HTTPS and now the proxy for image pulls, pushes and logins:

  • macOS's settings, a custom proxy, or none;
  • optionally passed to new containers as HTTP_PROXY, HTTPS_PROXY and NO_PROXY.

Download

eDock-0.4.0-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves; afterwards, press Restart engine on the Engine page.

Credits

eDock's engine is a fork of Kiri by Canestack Labs and the Kiri contributors, under Apache-2.0. The guest Linux kernel is GPL-2.0; its source is attached to this release.

eDock 0.3.1

Choose a tag to compare

@kwhorne kwhorne released this 14 Nov 20:15

An important fix for 0.3.0: please update.

Fixes

  • Prune no longer removes Linux machines or Kubernetes. In 0.3.0, a stopped Linux machine, or a stopped Kubernetes cluster, was deleted with everything in it by Prune on the Containers page or by docker container prune. Now they're kept, and go only by their own Delete (or an explicit docker rm).
  • eDock's own containers stay out of the way. Linux machines, the Kubernetes node and BuildKit no longer crowd the container list and the menu bar. eDock's own in the Containers header shows them, marked as what they are.
  • The environment editor keeps values exactly. It's now a row per variable:
    • a value over several lines, such as a PEM key or JSON, and spaces at its ends are kept as they are;
    • a container with two variables of the same name no longer breaks Inspect.
  • Quieter. The menu bar and the engine status ask eDock's engine once instead of twice, without keeping its VM awake.
  • Ports: a UDP port is no longer shown as listening because a TCP port of that number is.

After updating, press Restart engine on the Engine page: the prune fix is in the engine.

Download

eDock-0.3.1-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves.

Credits

eDock's engine is a fork of Kiri by Canestack Labs and the Kiri contributors, under Apache-2.0. The guest Linux kernel is GPL-2.0; its source is attached to this release.

eDock 0.3.0

Choose a tag to compare

@kwhorne kwhorne released this 14 Nov 19:29

eDock 0.3.0 brings out much of what eDock's engine could already do.

Ports that just work

  • Every running container has an address at eDock's router, http://<name>.edock.localhost (or <service>.<project>… for Compose). It shows in the list and the menu bar, and reaches the container's web port even when nothing is published.
  • See what a container really listens on. The new Ports tab finds ports it listens on that nothing publishes (you forgot -p, or the image never declared them) and publishes them with one click, while it runs. You can also add, change or remove ports there.
  • Edit the environment in place. Inspect › Environment › Edit restarts the container with the new variables, and keeps its files.
  • Trusted HTTPS. Engine › Domains › Trust HTTPS gives https://<name>.edock.localhost a padlock. The certificates can only vouch for eDock's own names. Another server on ports 80 and 443? Give eDock's domains ports of their own there.

Linux machines

A new Machines page: long-lived Linux environments with your Mac user, passwordless sudo, and /Users at the same path.

  • Ubuntu, Debian, Alpine, Fedora, Arch, Rocky or openSUSE, optionally with systemd.
  • Ready in seconds, with a shell a click away.
  • From the terminal: edock machine shell <name>.

Image security

Click an image:

  • Layers: what each Dockerfile line added, and which lines came with the base image.
  • Security: known vulnerabilities, found by Grype straight from eDock's store, without starting the VM.
    • Findings by severity, with the versions that fix them and the line that brought them in.
    • Fixable only filter, earlier scans, and the SBOM as CycloneDX.
    • The first scan downloads the scanner and its database: about 200 MB, and about 3 GB on disk.

Engine settings

The Engine page has tabs now:

  • Resources: the VM's CPUs and memory, and what the containers, the VM and eDock itself use now.
  • Domains: container domain ports and HTTPS trust.
  • Builds & import:
    • docker build's cache size, and emptying it;
    • import from OrbStack or Docker Desktop (only read; containers arrive stopped);
    • a diagnostics report, saved where you choose.

Also

  • edock tls status | trust | untrust on the command line.
  • Cards everywhere lay out their content properly.

Download

eDock-0.3.0-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below.

eDock 0.2.0 and later offer this update by themselves. Afterwards, press Restart engine on the Engine page.

Credits

eDock's engine is a fork of Kiri by Canestack Labs and the Kiri contributors, under Apache-2.0. The guest Linux kernel is GPL-2.0; its source is attached to this release.