@procedures/docker 0.1.0 → 0.2.1
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/CHANGELOG.md +29 -0
- package/README.md +2 -2
- package/dist/.tsbuildinfo +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/module.d.ts +7 -1
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +29 -1
- package/dist/module.js.map +1 -1
- package/dist/register.d.ts +3 -5
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +4 -11
- package/dist/register.js.map +1 -1
- package/package.json +7 -4
- package/src/index.ts +1 -1
- package/src/module.ts +30 -1
- package/src/register.ts +4 -13
package/dist/index.d.ts
CHANGED
|
@@ -31,5 +31,5 @@ export type { DockerRunInput, DockerBuildInput, DockerPullInput, DockerExecInput
|
|
|
31
31
|
export type { DockerLogItem } from "./procedures/docker/logs.js";
|
|
32
32
|
export { DockerRunInputSchema, DockerBuildInputSchema, DockerPullInputSchema, DockerExecInputSchema, DockerStopInputSchema, DockerRmInputSchema, DockerPsInputSchema, DockerLogsInputSchema, DockerComposeUpInputSchema, DockerComposeDownInputSchema, } from "./types.js";
|
|
33
33
|
export { dockerRun, dockerBuild, dockerPull, dockerExec, dockerStop, dockerRm, dockerPs, dockerLogs, dockerComposeUp, dockerComposeDown, } from "./procedures/docker/index.js";
|
|
34
|
-
export { registerDockerProcedures } from "./
|
|
34
|
+
export { registerDockerProcedures } from "./module.js";
|
|
35
35
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,eAAe,EACf,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,eAAe,EACf,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -31,5 +31,5 @@ export { DockerRunInputSchema, DockerBuildInputSchema, DockerPullInputSchema, Do
|
|
|
31
31
|
// Procedures
|
|
32
32
|
export { dockerRun, dockerBuild, dockerPull, dockerExec, dockerStop, dockerRm, dockerPs, dockerLogs, dockerComposeUp, dockerComposeDown, } from "./procedures/docker/index.js";
|
|
33
33
|
// Registration
|
|
34
|
-
export { registerDockerProcedures } from "./
|
|
34
|
+
export { registerDockerProcedures } from "./module.js";
|
|
35
35
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAkBH,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,YAAY,CAAC;AAEpB,aAAa;AACb,OAAO,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,eAAe,EACf,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAEtC,eAAe;AACf,OAAO,EAAE,wBAAwB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAkBH,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,YAAY,CAAC;AAEpB,aAAa;AACb,OAAO,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,eAAe,EACf,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAEtC,eAAe;AACf,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/module.d.ts
CHANGED
|
@@ -6,11 +6,17 @@
|
|
|
6
6
|
* Provides docker.run, docker.build, docker.pull, docker.exec, docker.stop,
|
|
7
7
|
* docker.rm, docker.ps, docker.logs, docker.compose.up, docker.compose.down procedures.
|
|
8
8
|
*/
|
|
9
|
-
import { type ProcedureModule } from "@procedures/client";
|
|
9
|
+
import { type ProcedureModule, type ProcedureRegistry } from "@procedures/client";
|
|
10
10
|
/**
|
|
11
11
|
* The module of this package, for `createRegistry()`: its procedures as data. Importing this
|
|
12
12
|
* file registers nothing. (`register.ts` registers the same procedures in the global registry.)
|
|
13
13
|
*/
|
|
14
14
|
export declare const dockerModule: ProcedureModule;
|
|
15
15
|
export default dockerModule;
|
|
16
|
+
/**
|
|
17
|
+
* This function registers the procedures of @procedures/docker, and of the modules that it requires, in
|
|
18
|
+
* a registry. The default is the global registry. Importing this file registers nothing: the
|
|
19
|
+
* `./register` entry starts this function (ARCHITECTURE-PROPOSALS-2026-10, P9).
|
|
20
|
+
*/
|
|
21
|
+
export declare function registerDockerProcedures(registry?: ProcedureRegistry): void;
|
|
16
22
|
//# sourceMappingURL=module.d.ts.map
|
package/dist/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAA6C,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAA6C,KAAK,eAAe,EAAuC,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAqOlK;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,eAWR,CAAC;eAEL,YAAY;AAE3B;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,GAAE,iBAAsC,GAAG,IAAI,CAE/F"}
|
package/dist/module.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Provides docker.run, docker.build, docker.pull, docker.exec, docker.stop,
|
|
7
7
|
* docker.rm, docker.ps, docker.logs, docker.compose.up, docker.compose.down procedures.
|
|
8
8
|
*/
|
|
9
|
-
import { createProcedure, zodAdapter, defineModule } from "@procedures/client";
|
|
9
|
+
import { createProcedure, zodAdapter, defineModule, PROCEDURE_REGISTRY, registerModules } from "@procedures/client";
|
|
10
10
|
import shellModule from "@procedures/shell/module";
|
|
11
11
|
import { dockerRun, dockerBuild, dockerPull, dockerExec, dockerStop, dockerRm, dockerPs, dockerLogs, dockerComposeUp, dockerComposeDown, } from "./procedures/docker/index.js";
|
|
12
12
|
import { DockerRunInputSchema, DockerBuildInputSchema, DockerPullInputSchema, DockerExecInputSchema, DockerStopInputSchema, DockerRmInputSchema, DockerPsInputSchema, DockerLogsInputSchema, DockerComposeUpInputSchema, DockerComposeDownInputSchema, DockerCommandOutputSchema, DockerLogsOutputSchema, } from "./types.js";
|
|
@@ -20,6 +20,9 @@ const dockerRunProcedure = createProcedure()
|
|
|
20
20
|
.meta({
|
|
21
21
|
description: "Run a Docker container",
|
|
22
22
|
calls: ["shell.run"],
|
|
23
|
+
// The container runs the image and command of the caller. The volumes give it host files, and
|
|
24
|
+
// docker pulls a missing image.
|
|
25
|
+
effects: { reads: ["docker", "fs", "network"], writes: ["docker", "fs", "process"] },
|
|
23
26
|
args: ["image"],
|
|
24
27
|
shorts: { name: "n", detach: "d" },
|
|
25
28
|
output: "json",
|
|
@@ -35,6 +38,9 @@ const dockerBuildProcedure = createProcedure()
|
|
|
35
38
|
.meta({
|
|
36
39
|
description: "Build a Docker image",
|
|
37
40
|
calls: ["shell.run"],
|
|
41
|
+
// The RUN steps of the Dockerfile are code of the project. Docker reads the context and pulls
|
|
42
|
+
// the base images. The tag goes to the new image, and the earlier image stays.
|
|
43
|
+
effects: { reads: ["docker", "fs", "network"], writes: ["docker", "process"], destructive: false },
|
|
38
44
|
args: ["context"],
|
|
39
45
|
shorts: { tag: "t", dockerfile: "f" },
|
|
40
46
|
output: "json",
|
|
@@ -50,6 +56,7 @@ const dockerPullProcedure = createProcedure()
|
|
|
50
56
|
.meta({
|
|
51
57
|
description: "Pull a Docker image",
|
|
52
58
|
calls: ["shell.run"],
|
|
59
|
+
effects: { reads: ["docker", "network"], writes: ["docker"], destructive: false, idempotent: true },
|
|
53
60
|
args: ["image"],
|
|
54
61
|
output: "json",
|
|
55
62
|
})
|
|
@@ -64,6 +71,8 @@ const dockerExecProcedure = createProcedure()
|
|
|
64
71
|
.meta({
|
|
65
72
|
description: "Execute command in a running container",
|
|
66
73
|
calls: ["shell.run"],
|
|
74
|
+
// The container runs the command of the caller
|
|
75
|
+
effects: { reads: ["docker"], writes: ["docker", "process"] },
|
|
67
76
|
args: ["container", "command"],
|
|
68
77
|
shorts: { interactive: "i", tty: "t", workdir: "w" },
|
|
69
78
|
output: "json",
|
|
@@ -79,6 +88,8 @@ const dockerStopProcedure = createProcedure()
|
|
|
79
88
|
.meta({
|
|
80
89
|
description: "Stop running container(s)",
|
|
81
90
|
calls: ["shell.run"],
|
|
91
|
+
// The stop of a stopped container changes nothing
|
|
92
|
+
effects: { reads: ["docker"], writes: ["docker"], idempotent: true },
|
|
82
93
|
args: ["containers"],
|
|
83
94
|
shorts: { time: "t" },
|
|
84
95
|
output: "json",
|
|
@@ -94,6 +105,7 @@ const dockerRmProcedure = createProcedure()
|
|
|
94
105
|
.meta({
|
|
95
106
|
description: "Remove container(s)",
|
|
96
107
|
calls: ["shell.run"],
|
|
108
|
+
effects: { reads: ["docker"], writes: ["docker"] },
|
|
97
109
|
args: ["containers"],
|
|
98
110
|
shorts: { force: "f", volumes: "v" },
|
|
99
111
|
output: "json",
|
|
@@ -109,6 +121,7 @@ const dockerPsProcedure = createProcedure()
|
|
|
109
121
|
.meta({
|
|
110
122
|
description: "List containers",
|
|
111
123
|
calls: ["shell.run"],
|
|
124
|
+
effects: { reads: ["docker"], writes: [] },
|
|
112
125
|
shorts: { all: "a", filter: "f", format: "F" },
|
|
113
126
|
output: "json",
|
|
114
127
|
})
|
|
@@ -124,6 +137,7 @@ const dockerLogsProcedure = createProcedure()
|
|
|
124
137
|
.meta({
|
|
125
138
|
description: "Get container logs",
|
|
126
139
|
calls: ["shell.run", "shell.stream"],
|
|
140
|
+
effects: { reads: ["docker"], writes: [] },
|
|
127
141
|
args: ["container"],
|
|
128
142
|
shorts: { follow: "f", tail: "n", timestamps: "t" },
|
|
129
143
|
output: "json",
|
|
@@ -139,6 +153,9 @@ const dockerComposeUpProcedure = createProcedure()
|
|
|
139
153
|
.meta({
|
|
140
154
|
description: "Start services with docker compose",
|
|
141
155
|
calls: ["shell.run"],
|
|
156
|
+
// The compose file of the caller sets the images, the commands and the host folders of the
|
|
157
|
+
// services. An up can replace the containers of changed services.
|
|
158
|
+
effects: { reads: ["docker", "fs", "network"], writes: ["docker", "fs", "process"] },
|
|
142
159
|
shorts: { file: "f", detach: "d", build: "b" },
|
|
143
160
|
output: "json",
|
|
144
161
|
})
|
|
@@ -153,6 +170,9 @@ const dockerComposeDownProcedure = createProcedure()
|
|
|
153
170
|
.meta({
|
|
154
171
|
description: "Stop services with docker compose",
|
|
155
172
|
calls: ["shell.run"],
|
|
173
|
+
// It removes the containers of the project, and with volumes: true its volumes. A second down
|
|
174
|
+
// changes nothing.
|
|
175
|
+
effects: { reads: ["docker", "fs"], writes: ["docker"], idempotent: true },
|
|
156
176
|
shorts: { file: "f", volumes: "v" },
|
|
157
177
|
output: "json",
|
|
158
178
|
})
|
|
@@ -180,4 +200,12 @@ export const dockerModule = defineModule("@procedures/docker", [
|
|
|
180
200
|
dockerComposeDownProcedure,
|
|
181
201
|
], [shellModule]);
|
|
182
202
|
export default dockerModule;
|
|
203
|
+
/**
|
|
204
|
+
* This function registers the procedures of @procedures/docker, and of the modules that it requires, in
|
|
205
|
+
* a registry. The default is the global registry. Importing this file registers nothing: the
|
|
206
|
+
* `./register` entry starts this function (ARCHITECTURE-PROPOSALS-2026-10, P9).
|
|
207
|
+
*/
|
|
208
|
+
export function registerDockerProcedures(registry = PROCEDURE_REGISTRY) {
|
|
209
|
+
registerModules(registry, [dockerModule]);
|
|
210
|
+
}
|
|
183
211
|
//# sourceMappingURL=module.js.map
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAwB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
|
package/dist/register.d.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Importing this file registers the procedures of @procedures/docker
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Importing this file registers the procedures of @procedures/docker, and of the modules that it
|
|
3
|
+
* requires, in the global registry: `import "@procedures/docker/register"`. The package root and the
|
|
4
|
+
* `./module` entry register nothing (ARCHITECTURE-PROPOSALS-2026-10, P9).
|
|
5
5
|
*/
|
|
6
|
-
import "@procedures/shell";
|
|
7
6
|
export * from "./module.js";
|
|
8
|
-
export declare function registerDockerProcedures(): void;
|
|
9
7
|
//# sourceMappingURL=register.d.ts.map
|
package/dist/register.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,cAAc,aAAa,CAAC"}
|
package/dist/register.js
CHANGED
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Importing this file registers the procedures of @procedures/docker
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Importing this file registers the procedures of @procedures/docker, and of the modules that it
|
|
3
|
+
* requires, in the global registry: `import "@procedures/docker/register"`. The package root and the
|
|
4
|
+
* `./module` entry register nothing (ARCHITECTURE-PROPOSALS-2026-10, P9).
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
import "@procedures/shell";
|
|
8
|
-
import { registerProcedures } from "@procedures/client";
|
|
9
|
-
import { dockerModule } from "./module.js";
|
|
6
|
+
import { registerDockerProcedures } from "./module.js";
|
|
10
7
|
export * from "./module.js";
|
|
11
|
-
export function registerDockerProcedures() {
|
|
12
|
-
registerProcedures(dockerModule.procedures);
|
|
13
|
-
}
|
|
14
|
-
// Auto-register when this module is loaded
|
|
15
8
|
registerDockerProcedures();
|
|
16
9
|
//# sourceMappingURL=register.js.map
|
package/dist/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,cAAc,aAAa,CAAC;AAE5B,wBAAwB,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package",
|
|
3
3
|
"name": "@procedures/docker",
|
|
4
|
-
"version": "0.1
|
|
4
|
+
"version": "0.2.1",
|
|
5
5
|
"description": "Docker and Docker Compose as typed procedures: ps, run, exec, logs (streaming), build, pull, stop, rm, compose up and down, run with argv and no shell injection.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"docker",
|
|
@@ -34,6 +34,10 @@
|
|
|
34
34
|
"types": "./dist/module.d.ts",
|
|
35
35
|
"import": "./dist/module.js"
|
|
36
36
|
},
|
|
37
|
+
"./register": {
|
|
38
|
+
"types": "./dist/register.d.ts",
|
|
39
|
+
"import": "./dist/register.js"
|
|
40
|
+
},
|
|
37
41
|
"./register.js": {
|
|
38
42
|
"import": "./dist/register.js"
|
|
39
43
|
}
|
|
@@ -47,7 +51,6 @@
|
|
|
47
51
|
"CHANGELOG.md"
|
|
48
52
|
],
|
|
49
53
|
"sideEffects": [
|
|
50
|
-
"./dist/index.js",
|
|
51
54
|
"./dist/register.js"
|
|
52
55
|
],
|
|
53
56
|
"engines": {
|
|
@@ -58,8 +61,8 @@
|
|
|
58
61
|
"provenance": true
|
|
59
62
|
},
|
|
60
63
|
"dependencies": {
|
|
61
|
-
"@procedures/client": "0.1
|
|
62
|
-
"@procedures/shell": "0.1
|
|
64
|
+
"@procedures/client": "0.2.1",
|
|
65
|
+
"@procedures/shell": "0.2.1",
|
|
63
66
|
"zod": "^4.6.5"
|
|
64
67
|
},
|
|
65
68
|
"devDependencies": {
|
package/src/index.ts
CHANGED
package/src/module.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
import { createProcedure, zodAdapter, defineModule, type ProcedureModule } from "@procedures/client";
|
|
11
|
+
import { createProcedure, zodAdapter, defineModule, type ProcedureModule, PROCEDURE_REGISTRY, registerModules, type ProcedureRegistry } from "@procedures/client";
|
|
12
12
|
import shellModule from "@procedures/shell/module";
|
|
13
13
|
import {
|
|
14
14
|
dockerRun,
|
|
@@ -61,6 +61,9 @@ const dockerRunProcedure = createProcedure()
|
|
|
61
61
|
.meta({
|
|
62
62
|
description: "Run a Docker container",
|
|
63
63
|
calls: ["shell.run"],
|
|
64
|
+
// The container runs the image and command of the caller. The volumes give it host files, and
|
|
65
|
+
// docker pulls a missing image.
|
|
66
|
+
effects: { reads: ["docker", "fs", "network"], writes: ["docker", "fs", "process"] },
|
|
64
67
|
args: ["image"],
|
|
65
68
|
shorts: { name: "n", detach: "d" },
|
|
66
69
|
output: "json",
|
|
@@ -77,6 +80,9 @@ const dockerBuildProcedure = createProcedure()
|
|
|
77
80
|
.meta({
|
|
78
81
|
description: "Build a Docker image",
|
|
79
82
|
calls: ["shell.run"],
|
|
83
|
+
// The RUN steps of the Dockerfile are code of the project. Docker reads the context and pulls
|
|
84
|
+
// the base images. The tag goes to the new image, and the earlier image stays.
|
|
85
|
+
effects: { reads: ["docker", "fs", "network"], writes: ["docker", "process"], destructive: false },
|
|
80
86
|
args: ["context"],
|
|
81
87
|
shorts: { tag: "t", dockerfile: "f" },
|
|
82
88
|
output: "json",
|
|
@@ -93,6 +99,7 @@ const dockerPullProcedure = createProcedure()
|
|
|
93
99
|
.meta({
|
|
94
100
|
description: "Pull a Docker image",
|
|
95
101
|
calls: ["shell.run"],
|
|
102
|
+
effects: { reads: ["docker", "network"], writes: ["docker"], destructive: false, idempotent: true },
|
|
96
103
|
args: ["image"],
|
|
97
104
|
output: "json",
|
|
98
105
|
})
|
|
@@ -108,6 +115,8 @@ const dockerExecProcedure = createProcedure()
|
|
|
108
115
|
.meta({
|
|
109
116
|
description: "Execute command in a running container",
|
|
110
117
|
calls: ["shell.run"],
|
|
118
|
+
// The container runs the command of the caller
|
|
119
|
+
effects: { reads: ["docker"], writes: ["docker", "process"] },
|
|
111
120
|
args: ["container", "command"],
|
|
112
121
|
shorts: { interactive: "i", tty: "t", workdir: "w" },
|
|
113
122
|
output: "json",
|
|
@@ -124,6 +133,8 @@ const dockerStopProcedure = createProcedure()
|
|
|
124
133
|
.meta({
|
|
125
134
|
description: "Stop running container(s)",
|
|
126
135
|
calls: ["shell.run"],
|
|
136
|
+
// The stop of a stopped container changes nothing
|
|
137
|
+
effects: { reads: ["docker"], writes: ["docker"], idempotent: true },
|
|
127
138
|
args: ["containers"],
|
|
128
139
|
shorts: { time: "t" },
|
|
129
140
|
output: "json",
|
|
@@ -140,6 +151,7 @@ const dockerRmProcedure = createProcedure()
|
|
|
140
151
|
.meta({
|
|
141
152
|
description: "Remove container(s)",
|
|
142
153
|
calls: ["shell.run"],
|
|
154
|
+
effects: { reads: ["docker"], writes: ["docker"] },
|
|
143
155
|
args: ["containers"],
|
|
144
156
|
shorts: { force: "f", volumes: "v" },
|
|
145
157
|
output: "json",
|
|
@@ -156,6 +168,7 @@ const dockerPsProcedure = createProcedure()
|
|
|
156
168
|
.meta({
|
|
157
169
|
description: "List containers",
|
|
158
170
|
calls: ["shell.run"],
|
|
171
|
+
effects: { reads: ["docker"], writes: [] },
|
|
159
172
|
shorts: { all: "a", filter: "f", format: "F" },
|
|
160
173
|
output: "json",
|
|
161
174
|
})
|
|
@@ -172,6 +185,7 @@ const dockerLogsProcedure = createProcedure()
|
|
|
172
185
|
.meta({
|
|
173
186
|
description: "Get container logs",
|
|
174
187
|
calls: ["shell.run", "shell.stream"],
|
|
188
|
+
effects: { reads: ["docker"], writes: [] },
|
|
175
189
|
args: ["container"],
|
|
176
190
|
shorts: { follow: "f", tail: "n", timestamps: "t" },
|
|
177
191
|
output: "json",
|
|
@@ -190,6 +204,9 @@ const dockerComposeUpProcedure = createProcedure()
|
|
|
190
204
|
.meta({
|
|
191
205
|
description: "Start services with docker compose",
|
|
192
206
|
calls: ["shell.run"],
|
|
207
|
+
// The compose file of the caller sets the images, the commands and the host folders of the
|
|
208
|
+
// services. An up can replace the containers of changed services.
|
|
209
|
+
effects: { reads: ["docker", "fs", "network"], writes: ["docker", "fs", "process"] },
|
|
193
210
|
shorts: { file: "f", detach: "d", build: "b" },
|
|
194
211
|
output: "json",
|
|
195
212
|
})
|
|
@@ -205,6 +222,9 @@ const dockerComposeDownProcedure = createProcedure()
|
|
|
205
222
|
.meta({
|
|
206
223
|
description: "Stop services with docker compose",
|
|
207
224
|
calls: ["shell.run"],
|
|
225
|
+
// It removes the containers of the project, and with volumes: true its volumes. A second down
|
|
226
|
+
// changes nothing.
|
|
227
|
+
effects: { reads: ["docker", "fs"], writes: ["docker"], idempotent: true },
|
|
208
228
|
shorts: { file: "f", volumes: "v" },
|
|
209
229
|
output: "json",
|
|
210
230
|
})
|
|
@@ -235,3 +255,12 @@ export const dockerModule: ProcedureModule = defineModule("@procedures/docker",
|
|
|
235
255
|
], [shellModule]);
|
|
236
256
|
|
|
237
257
|
export default dockerModule;
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* This function registers the procedures of @procedures/docker, and of the modules that it requires, in
|
|
261
|
+
* a registry. The default is the global registry. Importing this file registers nothing: the
|
|
262
|
+
* `./register` entry starts this function (ARCHITECTURE-PROPOSALS-2026-10, P9).
|
|
263
|
+
*/
|
|
264
|
+
export function registerDockerProcedures(registry: ProcedureRegistry = PROCEDURE_REGISTRY): void {
|
|
265
|
+
registerModules(registry, [dockerModule]);
|
|
266
|
+
}
|
package/src/register.ts
CHANGED
|
@@ -1,20 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Importing this file registers the procedures of @procedures/docker
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Importing this file registers the procedures of @procedures/docker, and of the modules that it
|
|
3
|
+
* requires, in the global registry: `import "@procedures/docker/register"`. The package root and the
|
|
4
|
+
* `./module` entry register nothing (ARCHITECTURE-PROPOSALS-2026-10, P9).
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
import "@procedures/shell";
|
|
9
|
-
|
|
10
|
-
import { registerProcedures } from "@procedures/client";
|
|
11
|
-
import { dockerModule } from "./module.js";
|
|
7
|
+
import { registerDockerProcedures } from "./module.js";
|
|
12
8
|
|
|
13
9
|
export * from "./module.js";
|
|
14
10
|
|
|
15
|
-
export function registerDockerProcedures(): void {
|
|
16
|
-
registerProcedures(dockerModule.procedures);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// Auto-register when this module is loaded
|
|
20
11
|
registerDockerProcedures();
|