Skip to content

Commit 6a38405

Browse files
committed
feat: 100% Docker CLI flag compatibility across all 111 commands
Add complete Docker CLI flag parity for every command and subcommand: - run/create: ~50 flags (--attach, --cpu-shares, --gpus, --init, --memory, --privileged, etc.) - build: ~25 BuildKit/Buildx flags (--cache-from, --load, --push, --secret, --ssh, etc.) - compose: ~200+ flags across 22 subcommands - network/volume/system: all missing flags added - New commands: commit, container prune, image rm/inspect/prune, container export Also adds CHANGELOG.md, COMMANDS.md reference, and What's New sections to both READMEs.
1 parent 02d3160 commit 6a38405

53 files changed

Lines changed: 5111 additions & 22 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
# Changelog
2+
3+
All notable changes to Mocker are documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
### Added
11+
- **100% Docker CLI flag compatibility** across all 111 commands/subcommands
12+
- `mocker commit` command with `--author`, `--change`, `--message`, `--no-pause`
13+
- `mocker container prune` command with `--filter`, `--force`
14+
- `mocker container export` (moved under `container` subcommand group)
15+
- `mocker image rm` command with `--force`, `--no-prune`, `--platform`
16+
- `mocker image inspect` command with `--format`, `--platform` and JSON output
17+
- `mocker image prune` command with `--all`, `--filter`, `--force`
18+
- `mocker run` / `mocker create`: added ~50 Docker-compatible flags including `--attach`, `--cpu-shares`, `--publish-all`, `--quiet`, `--sig-proxy`, `--oom-kill-disable`, `--annotation`, `--blkio-weight`, `--cap-add/drop`, `--cgroup-parent`, `--cgroupns`, `--cidfile`, `--cpus`, `--device`, `--dns`, `--entrypoint`, `--gpus`, `--health-cmd`, `--init`, `--ipc`, `--link`, `--log-driver`, `--mac-address`, `--memory`, `--network-alias`, `--pid`, `--platform`, `--privileged`, `--read-only`, `--restart`, `--runtime`, `--security-opt`, `--shm-size`, `--stop-signal`, `--stop-timeout`, `--storage-opt`, `--sysctl`, `--tmpfs`, `--ulimit`, `--userns`, `--volumes-from`, `--workdir`
19+
- `mocker build`: added ~25 BuildKit/Buildx flags including `--add-host`, `--allow`, `--annotation`, `--attest`, `--build-context`, `--builder`, `--cache-from`, `--cache-to`, `--call`, `--cgroup-parent`, `--check`, `--iidfile`, `--load`, `--metadata-file`, `--no-cache-filter`, `--output`, `--progress`, `--provenance`, `--push`, `--sbom`, `--secret`, `--shm-size`, `--ssh`, `--ulimit`
20+
- `mocker update`: added `--blkio-weight`, `--cpu-period`, `--cpu-quota`, `--cpu-rt-period`, `--cpu-rt-runtime`, `--cpuset-cpus`, `--cpuset-mems`, `--memory-reservation`, `--memory-swap`
21+
- `mocker history` / `mocker save` / `mocker load` / `mocker import`: added `--platform`
22+
- `mocker images`: added `--tree`
23+
- Network commands: added `--alias`, `--driver-opt`, `--gw-priority`, `--ip`, `--ip6`, `--link`, `--link-local-ip` to `network connect`; added `--attachable`, `--aux-address`, `--config-from`, `--config-only`, `--ingress`, `--internal`, `--ip-range`, `--ipam-driver`, `--ipam-opt`, `--ipv4`, `--ipv6`, `--label`, `--opt`, `--scope` to `network create`; added `--force` to `network disconnect/rm`; added `--format`, `--verbose` to `network inspect`
24+
- Volume commands: added `--label`, `--opt` to `volume create`; added `--format` to `volume inspect`; added `--force` to `volume rm`
25+
- System commands: added `--format` to `system info`; added `--filter` to `system prune`
26+
- Compose: added ~200+ flags across 22 subcommands for full Docker Compose CLI compatibility
27+
- `COMMANDS.md` — comprehensive reference of all 111 supported commands and flags
28+
29+
## [0.1.8] - 2026-03-09
30+
31+
### Added
32+
- `--env-file` flag support for `mocker run` — load environment variables from file
33+
34+
### Fixed
35+
- Homebrew tap commit author and runner configuration (macOS 26)
36+
37+
### CI
38+
- Added PR test workflow with macOS 26 runner
39+
40+
## [0.1.7] - 2026-03-08
41+
42+
### Added
43+
- AGPL-3.0 license
44+
- "Replace docker with mocker" quick-start section in README
45+
- `--rm` flag for `mocker run` — auto-remove container on exit
46+
- MenuBar GUI marked as "coming soon" in docs
47+
48+
### Fixed
49+
- `compose.yaml` and `compose.yml` now recognized as default compose file names (in addition to `docker-compose.yml`)
50+
- Compose variable substitution (`${VAR:-default}`) now resolves correctly
51+
- Named volumes now skip virtiofs bind mount for compatibility
52+
- Container remove stop timeout fixed for faster cleanup
53+
54+
### Changed
55+
- Documentation redesigned with den-style frontmatter and clean formatting
56+
57+
## [0.1.6] - 2026-03-08
58+
59+
### Fixed
60+
- Named volumes now resolve to correct host paths for compose services
61+
62+
## [0.1.5] - 2026-03-08
63+
64+
### Fixed
65+
- Relative build context paths now resolve against CWD correctly
66+
67+
## [0.1.4] - 2026-03-08
68+
69+
### Fixed
70+
- `container build` now always passes `-f` flag to use correct Dockerfile from build context directory
71+
72+
## [0.1.3] - 2026-03-08
73+
74+
### Added
75+
- `compose kill` subcommand
76+
- `--timeout` / `-t` flag for `compose down`
77+
78+
## [0.1.2] - 2026-03-08
79+
80+
### Added
81+
- `compose up` now accepts service names to start specific services
82+
- `compose down` now supports `--remove-orphans` and `--volumes` flags
83+
84+
## [0.1.1] - 2026-03-08
85+
86+
### Added
87+
- Homebrew installation support (`brew tap us/tap && brew install mocker`)
88+
- Release workflow — automated binary builds and homebrew formula updates
89+
90+
### Changed
91+
- Centered header in README
92+
93+
## [0.1.0] - 2026-03-07
94+
95+
### Added
96+
- Initial release of Mocker
97+
- **Container lifecycle**: `run`, `create`, `start`, `stop`, `restart`, `rm`, `kill`, `pause`, `unpause`, `rename`, `wait`, `attach`
98+
- **Container inspection**: `ps`, `inspect`, `logs`, `stats`, `top`, `port`, `diff`, `export`
99+
- **Image management**: `pull`, `push`, `build`, `images`, `tag`, `rmi`, `save`, `load`, `import`, `history`, `search`
100+
- **Network management**: `network create/ls/rm/inspect/connect/disconnect`
101+
- **Volume management**: `volume create/ls/rm/inspect`
102+
- **System**: `system info`, `system prune`, `version`, `events`
103+
- **Docker Compose v2**: `up`, `down`, `ps`, `logs`, `restart`, `build`, `pull`, `push`, `config`, `exec`, `run`, `stop`, `start`, `kill`, `rm`, `pause`, `unpause`, `top`, `events`, `images`, `port`, `cp`
104+
- Real container execution via Apple Containerization framework
105+
- `mocker build` with live streaming output via `container build`
106+
- `mocker stats` — real CPU/memory from VirtualMachine.xpc process
107+
- Port mapping (`-p`) via userspace TCP proxy subprocess
108+
- Inter-service hostname injection for compose networking
109+
- Docker-style short image reference normalization
110+
- JSON state persistence in `~/.mocker/`
111+
- Swift 6 actor-based concurrency throughout
112+
113+
[Unreleased]: https://github.com/us/mocker/compare/v0.1.8...HEAD
114+
[0.1.8]: https://github.com/us/mocker/compare/v0.1.7...v0.1.8
115+
[0.1.7]: https://github.com/us/mocker/compare/v0.1.6...v0.1.7
116+
[0.1.6]: https://github.com/us/mocker/compare/v0.1.5...v0.1.6
117+
[0.1.5]: https://github.com/us/mocker/compare/v0.1.4...v0.1.5
118+
[0.1.4]: https://github.com/us/mocker/compare/v0.1.3...v0.1.4
119+
[0.1.3]: https://github.com/us/mocker/compare/v0.1.2...v0.1.3
120+
[0.1.2]: https://github.com/us/mocker/compare/v0.1.1...v0.1.2
121+
[0.1.1]: https://github.com/us/mocker/compare/v0.1.0...v0.1.1
122+
[0.1.0]: https://github.com/us/mocker/releases/tag/v0.1.0

0 commit comments

Comments
 (0)