Skip to content

Releases: us/mocker

v0.2.0 -- Ground Truth

28 Mar 15:41
@us us

Choose a tag to compare

Ground Truth

This release prioritizes honesty over feature claims. Commands either work or tell you they can't.

Breaking Changes

  • mocker create, rename, pause, unpause now return explicit unsupported errors instead of silently mutating local metadata
  • mocker login / logout now return unsupported error (credentials were never consumed by pull/push)
  • Unsupported flags in mocker run now produce stderr warnings

Security Fixes

  • Fix shell injection in copyToContainer -- replaced sh -c with stdin pipe to tee
  • Fix shell injection in compose hostname injection -- same pattern
  • Fix pipe-buffer deadlock in both paths (async terminationHandler instead of blocking waitUntilExit)

Flag Forwarding

  • Forward Apple CLI flags in mocker run: -i, -t, -c, -m, --label, --cidfile, --rm, --tmpfs, --dns-search, --dns-option, --platform
  • Forward Apple CLI flags in mocker build: --label, --quiet, --progress, --output
  • Fix hostname parser (use assigned name, not inspect hostname field)

Documentation

  • 12 commands marked [unsupported] in COMMANDS.md
  • Compatibility notes added to both READMEs
  • Feature claims qualified ("Docker CLI compatible" not "full compatibility")

Testing

  • ProcessRunner protocol + MockProcessRunner actor for testability
  • 16 new tests (42 total, was 26)
  • ContainerEngine, ComposeOrchestrator, and flag enforcement tests

Other

  • All version strings unified via Version.currentVersion
  • Volume list prunes stale entries where _data/ directory no longer exists

Full Changelog

v0.1.9...v0.2.0

v0.1.9 -- Full Docker CLI Flag Compatibility

14 Mar 13:05
@us us

Choose a tag to compare

Full Docker CLI Flag Compatibility

Mocker now matches Docker's CLI flag-for-flag across 111 commands and subcommands.

Highlights

  • run / create: ~50 new flags -- --attach, --cpu-shares, --gpus, --init, --memory, --privileged, --restart, --security-opt, --shm-size, --ulimit, and more
  • build: ~25 BuildKit/Buildx flags -- --cache-from, --cache-to, --load, --push, --secret, --ssh, --sbom, --provenance
  • compose: ~200+ flags across 34 subcommands (was 22, added 12 missing ones)
  • Network / Volume / System: all missing flags added

New Commands

  • mocker commit -- create image from container changes
  • mocker container prune -- remove stopped containers
  • mocker container export -- export container filesystem
  • mocker image rm / image inspect / image prune -- full image subcommand group

New Compose Subcommands

  • compose events -- receive real-time events from containers
  • compose attach -- attach to a service container
  • compose commit / export -- image and filesystem operations
  • compose scale -- scale services
  • compose stats -- resource usage statistics
  • compose version / volumes / wait / watch / bridge / publish

Documentation

  • CHANGELOG.md -- full version history from v0.1.0 to present
  • COMMANDS.md -- comprehensive reference of all 111 commands with every flag
  • What's New sections added to both English and Chinese READMEs

Full Changelog

v0.1.8...v0.1.9

v0.1.8

09 Mar 11:22

Choose a tag to compare

ci: fix homebrew-tap commit author and update runner to macos-26

v0.1.7

08 Mar 15:13

Choose a tag to compare

fix: support compose.yaml / compose.yml as default compose file names

* Initial plan

* fix: support compose.yml and compose.yaml as default compose file names

Co-authored-by: kmplngj <562965+kmplngj@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>

v0.1.6

08 Mar 01:10

Choose a tag to compare

fix: resolve named volumes to host paths for compose

Apple's container CLI does not support named volumes (-v name:/path).
Convert named volumes to their host mountpoint directories so bind mounts
are used instead (e.g. pgdata -> ~/.mocker/volumes/project-pgdata/_data).

v0.1.5

08 Mar 00:54

Choose a tag to compare

fix: resolve relative build context paths against CWD

URL(fileURLWithPath:).standardized does not resolve relative paths
like ../crw-opencore. Explicitly resolve against the current working
directory so build contexts like 'build: ../service' work correctly
in docker-compose.yml.

v0.1.4

08 Mar 00:48

Choose a tag to compare

fix: always pass -f flag to container build to use correct Dockerfile

container build defaults to CWD/Dockerfile, not context-dir/Dockerfile.
When compose build context is in a different directory (e.g. ../crw-opencore),
the wrong Dockerfile was being used. Now always pass -f with the resolved
absolute path to the Dockerfile in the build context directory.

v0.1.3

08 Mar 00:21

Choose a tag to compare

fix: add compose kill subcommand and --timeout flag to compose down

- Add `mocker compose kill [service]` to force-stop containers
- Add `--timeout <seconds>` option to compose down (default: 10)
- Fixes compatibility with dev.sh which uses both features

v0.1.2

08 Mar 00:17

Choose a tag to compare

fix: compose up accepts service names, compose down accepts --remove-…

v0.1.1

07 Mar 22:21

Choose a tag to compare

ci: add release workflow — build binary and update homebrew formula