@wyrd-company/dcb-darwin-arm64 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +94 -13
- package/bin/dcb +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
# dcb
|
|
2
2
|
|
|
3
|
+

|
|
4
|
+

|
|
5
|
+
|
|
3
6
|
`dcb` builds and runs [development containers](https://containers.dev/) from a
|
|
4
7
|
`devcontainer.json`. It builds images on the Docker daemon's built-in BuildKit,
|
|
5
|
-
and creates, starts, and runs lifecycle
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
and runs host initialization on up. It creates, starts, and runs lifecycle
|
|
9
|
+
commands in containers through the
|
|
10
|
+
Docker Engine API. Commands other than `outdated`, `features info`, and
|
|
11
|
+
`features resolve-dependencies`, and `upgrade` write one JSON result line to
|
|
12
|
+
stdout, except
|
|
13
|
+
help, a valid `exec` invocation, and archive exports to stdout.
|
|
14
|
+
|
|
15
|
+
Dockerfile build network and extra host options map to native BuildKit controls.
|
|
8
16
|
|
|
9
17
|
Documentation is at [wyrd.foo/docs/dcb](https://wyrd.foo/docs/dcb), published
|
|
10
|
-
from [`docs/`](docs).
|
|
18
|
+
from [`docs/user/`](docs/user).
|
|
19
|
+
|
|
20
|
+
Build inputs support local environment and workspace variable substitution.
|
|
21
|
+
Library callers select the environment with `builder.Options.LocalEnv`.
|
|
11
22
|
|
|
12
23
|
## Install
|
|
13
24
|
|
|
@@ -24,9 +35,10 @@ APT and RPM need the [repo.wyrd.foo](https://repo.wyrd.foo) package
|
|
|
24
35
|
repository. [Installation](https://wyrd.foo/docs/dcb/install) gives the setup
|
|
25
36
|
commands and the release archives.
|
|
26
37
|
|
|
27
|
-
`dcb` runs on Linux and macOS, on `amd64` and `arm64`.
|
|
28
|
-
|
|
29
|
-
command is not needed.
|
|
38
|
+
`dcb` runs on Linux and macOS, on `amd64` and `arm64`. Container operations need
|
|
39
|
+
a Docker Engine reachable through the standard `DOCKER_HOST` environment; the
|
|
40
|
+
`docker` command is not needed. Local Feature packaging does not need Docker.
|
|
41
|
+
Podman is not supported.
|
|
30
42
|
|
|
31
43
|
## Use
|
|
32
44
|
|
|
@@ -34,6 +46,10 @@ command is not needed. Podman is not supported.
|
|
|
34
46
|
dcb up --workspace-folder .
|
|
35
47
|
dcb exec --workspace-folder . -- sh -c 'id && pwd'
|
|
36
48
|
dcb down --workspace-folder .
|
|
49
|
+
dcb features package ./src --output-folder ./packaged
|
|
50
|
+
dcb features generate-docs -p ./src -n example/collection
|
|
51
|
+
dcb features info verbose ghcr.io/example/collection/sample:1
|
|
52
|
+
dcb templates generate-docs -p ./templates
|
|
37
53
|
```
|
|
38
54
|
|
|
39
55
|
```json
|
|
@@ -76,18 +92,27 @@ matched. [Overview](https://wyrd.foo/docs/dcb/overview) lists the differences.
|
|
|
76
92
|
|
|
77
93
|
These upstream command families are not yet supported:
|
|
78
94
|
|
|
79
|
-
- [`
|
|
80
|
-
- [`
|
|
81
|
-
- [Feature authoring commands under `features`](https://github.com/wyrd-company/devcontainer-builder/issues/22)
|
|
82
|
-
- [`templates`](https://github.com/wyrd-company/devcontainer-builder/issues/23)
|
|
95
|
+
- [Feature authoring commands other than `features package`, `features generate-docs`, and `features info`](https://github.com/wyrd-company/devcontainer-builder/issues/22)
|
|
96
|
+
- [Template commands other than `templates metadata` and `templates generate-docs`](https://github.com/wyrd-company/devcontainer-builder/issues/23)
|
|
83
97
|
|
|
84
|
-
|
|
98
|
+
`dcb outdated` reports current, wanted, and latest OCI Feature versions as a text
|
|
99
|
+
table or with `--output-format json`. It does not need Docker or change lockfiles.
|
|
100
|
+
|
|
101
|
+
## Developers
|
|
85
102
|
|
|
86
103
|
The packages under [`pkg/`](pkg) build images, run containers on Docker or
|
|
87
104
|
Kubernetes, and convert configurations into Kubernetes Pods. They can be
|
|
88
|
-
embedded in a service or an operator.
|
|
105
|
+
embedded in a service or an operator. Image-source Kubernetes projection supports
|
|
106
|
+
command overrides and configuration-over-Feature environment precedence. See
|
|
89
107
|
[Go libraries](https://wyrd.foo/docs/dcb/library).
|
|
90
108
|
|
|
109
|
+
Dockerfile `build.options` supports native BuildKit cache bypass, image pulling,
|
|
110
|
+
networking, image labels,
|
|
111
|
+
build arguments, generated Dockerfile target selection, cache imports/exports,
|
|
112
|
+
build secrets, SSH session forwarding, shared memory size and build resource limits.
|
|
113
|
+
Other build option mappings remain explicit limitations; see
|
|
114
|
+
[configuration conformance](docs/audits/schema-conformance.md).
|
|
115
|
+
|
|
91
116
|
## Development
|
|
92
117
|
|
|
93
118
|
See [CONTRIBUTING.md](CONTRIBUTING.md). `task check` runs the checks that a
|
|
@@ -98,3 +123,59 @@ change must pass; `task parity` runs the parity harness.
|
|
|
98
123
|
[MIT](LICENSE). The npm launcher and some release scripts are adapted from
|
|
99
124
|
other Wyrd Company projects under the Apache License 2.0; see
|
|
100
125
|
[`npm/NOTICE`](npm/NOTICE).
|
|
126
|
+
|
|
127
|
+
Kubernetes image-source `runArgs` maps native boolean assignments, combined and
|
|
128
|
+
attached short forms, stdin and TTY. Bare environment keys use `LocalEnv` (nil
|
|
129
|
+
uses the process environment); explicit empty maps disable inheritance. Final unset
|
|
130
|
+
keys require `ImageConfig`; removing an image-owned variable returns an error.
|
|
131
|
+
Merged security flags follow `runArgs`; merged security options use first-seen
|
|
132
|
+
union order. Detach conflicts with inherited output
|
|
133
|
+
attachment, and enabled init has no PodSpec equivalent. Other Docker flag and
|
|
134
|
+
remaining Compose translations remain separate coverage.
|
|
135
|
+
|
|
136
|
+
Kubernetes `ProjectCompose` primary command projection defaults `overrideCommand`
|
|
137
|
+
to false. Its shell wrapper runs Feature entrypoints in order, then the service
|
|
138
|
+
entrypoint and command. Absent service values fall back to the image; an explicit
|
|
139
|
+
empty entrypoint suppresses both image Entrypoint and Cmd, and an explicit empty
|
|
140
|
+
command suppresses image Cmd. Configuration `containerEnv` overrides ordered
|
|
141
|
+
Features, then service environment, above inherited image environment. Dollars
|
|
142
|
+
remain literal. Full Compose `runArgs` needs separate checks.
|
|
143
|
+
|
|
144
|
+
Kubernetes Compose sidecars preserve service command and entrypoint defaults,
|
|
145
|
+
including explicit empty overrides and the `[""]` entrypoint reset.
|
|
146
|
+
`ComposeProjectRequest.SidecarImageConfigs`
|
|
147
|
+
supplies native OCI image configuration by service name when an empty command
|
|
148
|
+
needs image entrypoint fallback or an unset environment key needs checking.
|
|
149
|
+
An explicit empty entrypoint suppresses image Entrypoint and Cmd; a service with
|
|
150
|
+
no executable returns a contextual error. Unset image-owned environment values
|
|
151
|
+
return an error because Pod environment omission inherits image values. Explicit
|
|
152
|
+
empty environment values remain empty. Authored command and environment dollars
|
|
153
|
+
remain literal. Sidecars receive no primary configuration or Feature overlays.
|
|
154
|
+
|
|
155
|
+
Native Docker Compose defaults `overrideCommand` to false. The primary shell
|
|
156
|
+
wrapper always runs ordered Feature entrypoints, then the preserved service or
|
|
157
|
+
image command. True uses the wrapper with no original command. The wrapper does
|
|
158
|
+
not enable stdin or TTY. Empty service entrypoints suppress image Entrypoint and
|
|
159
|
+
Cmd; empty commands suppress image Cmd. Sidecars use Engine's native entrypoint
|
|
160
|
+
reset, including `[""]`; the primary preserves that argument inside the pinned
|
|
161
|
+
upstream wrapper. Image inspection for command fallback is needed only when the
|
|
162
|
+
service entrypoint is absent.
|
|
163
|
+
|
|
164
|
+
Configuration `containerEnv` wins over ordered Features, then service values,
|
|
165
|
+
above image inheritance. Unset service environment keys remove image variables;
|
|
166
|
+
empty values stay empty. Generated override YAML escapes dollars for Compose
|
|
167
|
+
interpolation; direct runtime values retain literal dollars. `remoteEnv` applies
|
|
168
|
+
to exec and lifecycle commands. These checks cover native host command and
|
|
169
|
+
environment handling; full Compose and schema conformance remain separate work.
|
|
170
|
+
|
|
171
|
+
Image-source Docker containers always run the pinned shell wrapper, including
|
|
172
|
+
`overrideCommand: false` without Features. That mode appends the inspected image
|
|
173
|
+
Entrypoint and Cmd. The image stop signal remains inherited unless `runArgs`
|
|
174
|
+
overrides it. Authored `--entrypoint` values are parsed and replaced by the
|
|
175
|
+
wrapper on Docker and Kubernetes. Docker `--rm` uses native Engine automatic
|
|
176
|
+
deletion. Kubernetes reports enabled `--rm` as unsupported because a standalone
|
|
177
|
+
Pod has no equivalent deletion behavior; a final `--rm=false` is accepted.
|
|
178
|
+
|
|
179
|
+
Create containers before their first start with `dcb up --no-start`, then bind
|
|
180
|
+
external resources and run ordinary `dcb up`. The Go hosts expose the same mode
|
|
181
|
+
through `UpRequest.NoStart`. See [usage](docs/user/usage.md#create-before-first-start).
|
package/bin/dcb
CHANGED
|
Binary file
|