@alchemy.run/docker 2.0.0-beta.84 → 2.0.0-beta.85
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/lib/BuildHash.d.ts +12 -3
- package/lib/BuildHash.d.ts.map +1 -1
- package/lib/BuildHash.js +9 -2
- package/lib/BuildHash.js.map +1 -1
- package/lib/Container.d.ts +98 -0
- package/lib/Container.d.ts.map +1 -1
- package/lib/Container.js +218 -4
- package/lib/Container.js.map +1 -1
- package/lib/Docker.d.ts +80 -1
- package/lib/Docker.d.ts.map +1 -1
- package/lib/Docker.js +27 -6
- package/lib/Docker.js.map +1 -1
- package/lib/Image.d.ts +29 -1
- package/lib/Image.d.ts.map +1 -1
- package/lib/Image.js +18 -0
- package/lib/Image.js.map +1 -1
- package/lib/ImageSource.d.ts +57 -3
- package/lib/ImageSource.d.ts.map +1 -1
- package/lib/ImageSource.js +32 -3
- package/lib/ImageSource.js.map +1 -1
- package/lib/RemoteImage.js +1 -1
- package/lib/RemoteImage.js.map +1 -1
- package/lib/Service.d.ts +24 -3
- package/lib/Service.d.ts.map +1 -1
- package/lib/Service.js +154 -12
- package/lib/Service.js.map +1 -1
- package/package.json +7 -7
- package/src/BuildHash.ts +12 -2
- package/src/Container.ts +330 -4
- package/src/Docker.ts +101 -7
- package/src/Image.ts +30 -1
- package/src/ImageSource.ts +78 -5
- package/src/RemoteImage.ts +1 -1
- package/src/Service.ts +246 -62
package/lib/ImageSource.js
CHANGED
|
@@ -3,6 +3,7 @@ import * as Bundle from "alchemy/Bundle/Bundle";
|
|
|
3
3
|
import { findCwdForBundle, getStableContextDir, resolveMainPath } from "alchemy/Bundle/TempRoot";
|
|
4
4
|
import { hashDirectory } from "alchemy/Command/Memo";
|
|
5
5
|
import { sha256Object } from "alchemy/Util/sha256";
|
|
6
|
+
import * as Data from "effect/Data";
|
|
6
7
|
import * as Effect from "effect/Effect";
|
|
7
8
|
import * as FileSystem from "effect/FileSystem";
|
|
8
9
|
import * as Path from "effect/Path";
|
|
@@ -22,9 +23,30 @@ export const imageSourceKind = (source) => source.main !== undefined
|
|
|
22
23
|
: source.context !== undefined || source.dockerfile !== undefined
|
|
23
24
|
? "context"
|
|
24
25
|
: undefined;
|
|
26
|
+
/**
|
|
27
|
+
* `build.args` or `build.secrets` set on an image that is not built from the
|
|
28
|
+
* user's own Dockerfile: a `main` program or a pre-built `image`.
|
|
29
|
+
*/
|
|
30
|
+
export class DockerfileBuildConflict extends Data.TaggedError("DockerfileBuildConflict") {
|
|
31
|
+
get message() {
|
|
32
|
+
return `'${this.id}': 'build.args' and 'build.secrets' apply to an image built from your own Dockerfile ('context' / 'dockerfile'), not to '${this.source}'`;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Dies with {@link DockerfileBuildConflict} when `build.args` or
|
|
37
|
+
* `build.secrets` are set alongside `main` or `image`.
|
|
38
|
+
*/
|
|
39
|
+
export const validateDockerfileBuild = (id, source) => (source.main !== undefined || source.image !== undefined) &&
|
|
40
|
+
(source.build?.args !== undefined || source.build?.secrets !== undefined)
|
|
41
|
+
? Effect.die(new DockerfileBuildConflict({
|
|
42
|
+
id,
|
|
43
|
+
source: source.main !== undefined ? "main" : "image",
|
|
44
|
+
}))
|
|
45
|
+
: Effect.void;
|
|
25
46
|
/**
|
|
26
47
|
* Validate environment-source exclusivity. Dies (plan-time defect) on
|
|
27
|
-
* `image`+`dockerfile`, `image`+`context`,
|
|
48
|
+
* `image`+`dockerfile`, `image`+`context`, inline-`dockerfile`+`context`, or
|
|
49
|
+
* build args/secrets without a Dockerfile build.
|
|
28
50
|
*/
|
|
29
51
|
export const validateImageSource = (id, source) => {
|
|
30
52
|
if (source.image !== undefined && source.dockerfile !== undefined) {
|
|
@@ -38,7 +60,7 @@ export const validateImageSource = (id, source) => {
|
|
|
38
60
|
source.context !== undefined) {
|
|
39
61
|
return Effect.die(new Error(`'${id}': inline 'dockerfile' content builds with no context — use a path dockerfile with 'context', or drop 'context'`));
|
|
40
62
|
}
|
|
41
|
-
return
|
|
63
|
+
return validateDockerfileBuild(id, source);
|
|
42
64
|
};
|
|
43
65
|
/**
|
|
44
66
|
* Resolve the Dockerfile path for a `context` source: always relative to the
|
|
@@ -90,6 +112,8 @@ export const computeStaticSourceHash = Effect.fn(function* (source, platform) {
|
|
|
90
112
|
return (yield* sha256Object({
|
|
91
113
|
dockerfile: source.dockerfile.content,
|
|
92
114
|
platform: platform ?? "linux/amd64",
|
|
115
|
+
// Absent when unset, so existing hashes hold. Secrets are excluded.
|
|
116
|
+
buildArgs: source.build?.args,
|
|
93
117
|
})).slice(0, 16);
|
|
94
118
|
}
|
|
95
119
|
const fs = yield* FileSystem.FileSystem;
|
|
@@ -103,6 +127,7 @@ export const computeStaticSourceHash = Effect.fn(function* (source, platform) {
|
|
|
103
127
|
contextHash,
|
|
104
128
|
dockerfile: dockerfileContent,
|
|
105
129
|
platform: platform ?? "linux/amd64",
|
|
130
|
+
buildArgs: source.build?.args,
|
|
106
131
|
})).slice(0, 16);
|
|
107
132
|
}
|
|
108
133
|
return undefined;
|
|
@@ -227,7 +252,7 @@ export const makeContainerImageSource = Effect.gen(function* () {
|
|
|
227
252
|
const preamble = envFrom !== undefined
|
|
228
253
|
? `FROM ${envFrom}`
|
|
229
254
|
: source.dockerfile !== undefined && isInlineDockerfile(source.dockerfile)
|
|
230
|
-
?
|
|
255
|
+
? source.dockerfile.content.trimEnd()
|
|
231
256
|
: `FROM ${source.image ?? "oven/bun:1"}`;
|
|
232
257
|
const lines = [
|
|
233
258
|
preamble,
|
|
@@ -272,6 +297,8 @@ export const makeContainerImageSource = Effect.gen(function* () {
|
|
|
272
297
|
context: options.context,
|
|
273
298
|
file: options.dockerfile,
|
|
274
299
|
platform: options.platform,
|
|
300
|
+
"build-arg": options.build?.args,
|
|
301
|
+
secrets: options.build?.secrets,
|
|
275
302
|
});
|
|
276
303
|
yield* push(options.imageUri, credentials, options.platform);
|
|
277
304
|
return options.imageUri;
|
|
@@ -399,6 +426,7 @@ export const makeContainerImageSource = Effect.gen(function* () {
|
|
|
399
426
|
imageUri,
|
|
400
427
|
context: contextDir,
|
|
401
428
|
platform,
|
|
429
|
+
build: source.build,
|
|
402
430
|
});
|
|
403
431
|
yield* session.note(`Pushed ${imageUri}`);
|
|
404
432
|
return { imageUri, repositoryUri, codeHash };
|
|
@@ -418,6 +446,7 @@ export const makeContainerImageSource = Effect.gen(function* () {
|
|
|
418
446
|
context,
|
|
419
447
|
dockerfile,
|
|
420
448
|
platform,
|
|
449
|
+
build: source.build,
|
|
421
450
|
});
|
|
422
451
|
yield* session.note(`Pushed ${imageUri}`);
|
|
423
452
|
return { imageUri, repositoryUri, codeHash };
|
package/lib/ImageSource.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageSource.js","sourceRoot":"","sources":["../src/ImageSource.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ImageSource.js","sourceRoot":"","sources":["../src/ImageSource.ts"],"names":[],"mappings":"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"}
|
package/lib/RemoteImage.js
CHANGED
|
@@ -67,7 +67,7 @@ export const RemoteImageProvider = () => Provider.effect(RemoteImage, Effect.gen
|
|
|
67
67
|
const docker = yield* Docker;
|
|
68
68
|
const inspectImage = (ref, context) => docker.image
|
|
69
69
|
.inspect(ref, context)
|
|
70
|
-
.pipe(Effect.catchIf(isMissingImageError, () => Effect.
|
|
70
|
+
.pipe(Effect.catchIf(isMissingImageError, () => Effect.undefined));
|
|
71
71
|
return RemoteImage.Provider.of({
|
|
72
72
|
list: () => Effect.succeed([]),
|
|
73
73
|
read: Effect.fn(function* ({ olds, output }) {
|
package/lib/RemoteImage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteImage.js","sourceRoot":"","sources":["../src/RemoteImage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,EAEL,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AA6DvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAc,oBAAoB,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CACtC,QAAQ,CAAC,MAAM,CACb,WAAW,EACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;IAC7B,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,OAA2B,EAAE,EAAE,CAChE,MAAM,CAAC,KAAK;SACT,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC;SACrB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"RemoteImage.js","sourceRoot":"","sources":["../src/RemoteImage.ts"],"names":[],"mappings":"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"}
|
package/lib/Service.d.ts
CHANGED
|
@@ -310,9 +310,14 @@ export interface ServiceRuntimeContext extends HostRuntimeContext {
|
|
|
310
310
|
* image on a registry every node can reach (build with `Docker.Image` +
|
|
311
311
|
* `registry` and pass the pushed ref as `image` instead).
|
|
312
312
|
*
|
|
313
|
-
* Only replicated services are supported.
|
|
314
|
-
*
|
|
315
|
-
*
|
|
313
|
+
* Only replicated services are supported. Changes to the image, replicas,
|
|
314
|
+
* environment, labels, networks, ports, mounts, secrets, configs, constraints,
|
|
315
|
+
* healthcheck, and rollout or restart policies are applied in place with
|
|
316
|
+
* `docker service update`, so swarm rolls tasks over following `updateConfig`.
|
|
317
|
+
* An update that swarm rolls back or pauses fails the deploy with
|
|
318
|
+
* `DockerServiceUpdateFailed`. Changing the name, context, command, args,
|
|
319
|
+
* endpoint mode, placement preferences, or read-only root filesystem, or
|
|
320
|
+
* removing a policy setting, replaces the service (delete-then-create).
|
|
316
321
|
* ### Creating Services
|
|
317
322
|
* **Example:** Replicated Nginx
|
|
318
323
|
* ```typescript
|
|
@@ -474,5 +479,21 @@ export interface ServiceRuntimeContext extends HostRuntimeContext {
|
|
|
474
479
|
* @product Swarm
|
|
475
480
|
*/
|
|
476
481
|
export declare const Service: Platform<Service, ServiceServices, ServiceShape, ServiceRuntimeContext>;
|
|
482
|
+
declare const DockerServiceUpdateFailed_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
483
|
+
readonly _tag: "DockerServiceUpdateFailed";
|
|
484
|
+
} & Readonly<A>;
|
|
485
|
+
/**
|
|
486
|
+
* A `docker service update` that swarm rolled back or paused instead of
|
|
487
|
+
* completing. `--detach=false` exits 0 on a rollback and 1 on a pause, so the
|
|
488
|
+
* provider reads the service's `UpdateStatus` after the update.
|
|
489
|
+
*/
|
|
490
|
+
export declare class DockerServiceUpdateFailed extends DockerServiceUpdateFailed_base<{
|
|
491
|
+
readonly service: string;
|
|
492
|
+
readonly state: string;
|
|
493
|
+
readonly reason: string;
|
|
494
|
+
}> {
|
|
495
|
+
get message(): string;
|
|
496
|
+
}
|
|
477
497
|
export declare const ServiceProvider: () => import("effect/Layer").Layer<Provider.Provider<Service>, never, import("alchemy/AlchemyContext").AlchemyContext | Docker | import("effect/FileSystem").FileSystem | import("effect/Path").Path | Stack | import("alchemy/Stage").Stage>;
|
|
498
|
+
export {};
|
|
478
499
|
//# sourceMappingURL=Service.d.ts.map
|
package/lib/Service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../src/Service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../src/Service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAMtC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,KAAK,QAAQ,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,MAAM,EAA+C,MAAM,aAAa,CAAC;AAElF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;IAC3B,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,iDAAiD;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrD,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;IAC9B;;;;OAIG;IACH,YAAY,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;IAC9B,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IACrC,mDAAmD;IACnD,cAAc,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IACvC,6BAA6B;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IACtC,+CAA+C;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;IAClC,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;IAClC,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;IAC9B,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;IAC9B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,uDAAuD;IACvD,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;KAC1C,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAEnE,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAK,KAAK,GAAG,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAE3C,UAAU,WAAW;QACnB,kFAAkF;QAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,wCAAwC;QACxC,QAAQ,EAAE,MAAM,CAAC;QACjB;;;;WAIG;QACH,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;QACzB;;;;;WAKG;QACH,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;KAC3B;IAED,UAAU,aAAa;QACrB,wCAAwC;QACxC,QAAQ,EAAE,MAAM,CAAC;QACjB,sBAAsB;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB;;;;WAIG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB;IAED,UAAU,iBAAiB;QACzB,oBAAoB;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,+CAA+C;QAC/C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB;IAED,UAAU,SAAS;QACjB,yDAAyD;QACzD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,+DAA+D;QAC/D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,iDAAiD;QACjD,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B;IAED,UAAU,aAAa;QACrB,8CAA8C;QAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gDAAgD;QAChD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,uEAAuE;QACvE,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,gCAAgC;QAChC,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;QAClD,gDAAgD;QAChD,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,sCAAsC;QACtC,KAAK,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC;KACtC;IAED,UAAU,aAAa;QACrB,2CAA2C;QAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,KAAK,CAAC;QAC1C,mDAAmD;QACnD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,iDAAiD;QACjD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,iEAAiE;QACjE,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAED,UAAU,WAAW;QACnB;;;;;WAKG;QACH,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACvB,yCAAyC;QACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,iDAAiD;QACjD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,6CAA6C;QAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,0CAA0C;QAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;IAED,UAAU,SAAS;QACjB,yBAAyB;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,iEAAiE;QACjE,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,sBAAsB;QACtB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,sBAAsB;QACtB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,+BAA+B;QAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB;IAED,UAAU,SAAS;QACjB,yBAAyB;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,6DAA6D;QAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,sBAAsB;QACtB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,sBAAsB;QACtB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,+BAA+B;QAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB;CACF;AAED,MAAM,WAAW,OAAQ,SAAQ,QAAQ,CACvC,gBAAgB,EAChB,YAAY,EACZ;IACE,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,iDAAiD;IACjD,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;IAC7B,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,uCAAuC;IACvC,YAAY,EAAE,KAAK,GAAG,OAAO,CAAC;IAC9B,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,IAAI,CAAC,EAAE;QACL,mDAAmD;QACnD,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,EACD,KAAK,EACL,SAAS,CACV;CAAG;AAEJ,sEAAsE;AACtE,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC;AAEzC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;AAEjD,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgMG;AACH,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,qBAAqB,CAKxF,CAAC;;;;AAML;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,+BAA8C;IAC3F,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;IACA,IAAa,OAAO,WAEnB;CACF;AA4CD,eAAO,MAAM,eAAe,+OAgWzB,CAAC"}
|
package/lib/Service.js
CHANGED
|
@@ -5,6 +5,7 @@ import * as Provider from "alchemy/Provider";
|
|
|
5
5
|
import { createContainerRuntimeContext, } from "alchemy/Runtime/Process";
|
|
6
6
|
import { Stack } from "alchemy/Stack";
|
|
7
7
|
import { createInternalTags, hasAlchemyTags } from "alchemy/Tags";
|
|
8
|
+
import * as Data from "effect/Data";
|
|
8
9
|
import * as Effect from "effect/Effect";
|
|
9
10
|
import * as Equal from "effect/Equal";
|
|
10
11
|
import * as Redacted from "effect/Redacted";
|
|
@@ -37,9 +38,14 @@ import { makeServiceImage } from "./ServiceImage.js";
|
|
|
37
38
|
* image on a registry every node can reach (build with `Docker.Image` +
|
|
38
39
|
* `registry` and pass the pushed ref as `image` instead).
|
|
39
40
|
*
|
|
40
|
-
* Only replicated services are supported.
|
|
41
|
-
*
|
|
42
|
-
*
|
|
41
|
+
* Only replicated services are supported. Changes to the image, replicas,
|
|
42
|
+
* environment, labels, networks, ports, mounts, secrets, configs, constraints,
|
|
43
|
+
* healthcheck, and rollout or restart policies are applied in place with
|
|
44
|
+
* `docker service update`, so swarm rolls tasks over following `updateConfig`.
|
|
45
|
+
* An update that swarm rolls back or pauses fails the deploy with
|
|
46
|
+
* `DockerServiceUpdateFailed`. Changing the name, context, command, args,
|
|
47
|
+
* endpoint mode, placement preferences, or read-only root filesystem, or
|
|
48
|
+
* removing a policy setting, replaces the service (delete-then-create).
|
|
43
49
|
* ### Creating Services
|
|
44
50
|
* **Example:** Replicated Nginx
|
|
45
51
|
* ```typescript
|
|
@@ -205,6 +211,16 @@ export const Service = Platform("Docker.Service", {
|
|
|
205
211
|
});
|
|
206
212
|
/** True when the props declare a bundled `main` program. */
|
|
207
213
|
const isBundledService = (props) => typeof props.main === "string";
|
|
214
|
+
/**
|
|
215
|
+
* A `docker service update` that swarm rolled back or paused instead of
|
|
216
|
+
* completing. `--detach=false` exits 0 on a rollback and 1 on a pause, so the
|
|
217
|
+
* provider reads the service's `UpdateStatus` after the update.
|
|
218
|
+
*/
|
|
219
|
+
export class DockerServiceUpdateFailed extends Data.TaggedError("DockerServiceUpdateFailed") {
|
|
220
|
+
get message() {
|
|
221
|
+
return `Update of service "${this.service}" ended in ${this.state}: ${this.reason}`;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
208
224
|
export const ServiceProvider = () => Provider.effect(Service, Effect.gen(function* () {
|
|
209
225
|
const docker = yield* Docker;
|
|
210
226
|
const stack = yield* Stack;
|
|
@@ -259,17 +275,19 @@ export const ServiceProvider = () => Provider.effect(Service, Effect.gen(functio
|
|
|
259
275
|
const oldDesired = yield* normalizeDesired(id, olds, instanceId);
|
|
260
276
|
const newDesired = yield* normalizeDesired(id, news, instanceId);
|
|
261
277
|
if (!Equal.equals(oldDesired, newDesired)) {
|
|
262
|
-
return
|
|
278
|
+
return requiresReplacement(oldDesired, newDesired)
|
|
279
|
+
? { action: "replace", deleteFirst: true }
|
|
280
|
+
: { action: "update" };
|
|
263
281
|
}
|
|
264
282
|
// Bundled program: the image identity is the content hash — a code
|
|
265
|
-
// or bootstrap change
|
|
283
|
+
// or bootstrap change rolls the service onto the new image.
|
|
266
284
|
if (isBundledService(news)) {
|
|
267
285
|
const hash = yield* serviceImage.hash({
|
|
268
286
|
source: news,
|
|
269
287
|
isExternal: news.isExternal,
|
|
270
288
|
});
|
|
271
289
|
if (hash !== output?.code?.hash) {
|
|
272
|
-
return { action: "
|
|
290
|
+
return { action: "update" };
|
|
273
291
|
}
|
|
274
292
|
}
|
|
275
293
|
return { action: "noop" };
|
|
@@ -301,15 +319,47 @@ export const ServiceProvider = () => Provider.effect(Service, Effect.gen(functio
|
|
|
301
319
|
const allDesiredLabels = { ...internalTags, ...desired.labels };
|
|
302
320
|
const currentLabels = current.Spec.Labels ?? {};
|
|
303
321
|
const labelsToRemove = Object.keys(currentLabels).filter((k) => !(k in allDesiredLabels));
|
|
304
|
-
|
|
322
|
+
// `service update` only adds and removes list entries, so the
|
|
323
|
+
// removals are computed from the observed spec rather than olds.
|
|
324
|
+
const spec = current.Spec.TaskTemplate?.ContainerSpec;
|
|
325
|
+
const envToRemove = (spec?.Env ?? [])
|
|
326
|
+
.map((entry) => entry.split("=", 1)[0])
|
|
327
|
+
.filter((key) => !(key in environment));
|
|
328
|
+
const currentConstraints = current.Spec.TaskTemplate?.Placement?.Constraints ?? [];
|
|
329
|
+
const constraintsToRemove = currentConstraints.filter((c) => !desired.constraints.includes(c));
|
|
330
|
+
// `--constraint-add` appends without de-duplicating.
|
|
331
|
+
const constraintsToAdd = desired.constraints.filter((c) => !currentConstraints.includes(c));
|
|
332
|
+
const desiredTargets = new Set(desired.volumes.map((v) => v.containerPath));
|
|
333
|
+
const mountsToRemove = (spec?.Mounts ?? []).flatMap((m) => m.Target && !desiredTargets.has(m.Target) ? [m.Target] : []);
|
|
334
|
+
const desiredPorts = new Set(desired.ports.map(formatPublish));
|
|
335
|
+
const portsToRemove = (current.Spec.EndpointSpec?.Ports ?? []).flatMap((p) => p.TargetPort !== undefined &&
|
|
336
|
+
!desiredPorts.has(formatPublish({
|
|
337
|
+
external: p.PublishedPort,
|
|
338
|
+
internal: p.TargetPort,
|
|
339
|
+
protocol: p.Protocol,
|
|
340
|
+
mode: p.PublishMode,
|
|
341
|
+
}))
|
|
342
|
+
? // `--publish-rm` matches target, protocol and publish mode.
|
|
343
|
+
[
|
|
344
|
+
`target=${p.TargetPort},protocol=${p.Protocol ?? "tcp"},mode=${p.PublishMode ?? "ingress"}`,
|
|
345
|
+
]
|
|
346
|
+
: []);
|
|
347
|
+
// A rollback exits 0 but a paused rollout exits 1, so the
|
|
348
|
+
// outcome is read from `UpdateStatus` either way.
|
|
349
|
+
const updateError = yield* docker.service
|
|
350
|
+
.update({
|
|
305
351
|
context: desired.context,
|
|
306
352
|
id: output.id,
|
|
307
353
|
image,
|
|
308
354
|
replicas: desired.replicas,
|
|
309
355
|
"endpoint-mode": desired.endpointMode,
|
|
310
|
-
|
|
356
|
+
// Attaching a network the service is already on fails, so
|
|
357
|
+
// every attachment is detached and the desired set re-added.
|
|
358
|
+
"network-rm": (current.Spec.TaskTemplate?.Networks ?? []).flatMap((n) => n.Target ? [n.Target] : []),
|
|
359
|
+
"network-add": desired.networks.map(formatNetwork),
|
|
360
|
+
"constraint-rm": constraintsToRemove,
|
|
361
|
+
"constraint-add": constraintsToAdd,
|
|
311
362
|
"replicas-max-per-node": desired.maxReplicasPerNode,
|
|
312
|
-
"placement-pref": desired.preferences,
|
|
313
363
|
"update-parallelism": desired.updateConfig?.parallelism,
|
|
314
364
|
"update-delay": desired.updateConfig?.delay,
|
|
315
365
|
"update-monitor": desired.updateConfig?.monitor,
|
|
@@ -336,19 +386,51 @@ export const ServiceProvider = () => Provider.effect(Service, Effect.gen(functio
|
|
|
336
386
|
"health-retries": desired.healthcheck?.retries,
|
|
337
387
|
"health-start-period": desired.healthcheck?.startPeriod,
|
|
338
388
|
"stop-grace-period": desired.stopGracePeriod,
|
|
389
|
+
"mount-rm": mountsToRemove,
|
|
339
390
|
"mount-add": desired.volumes.map(formatMount),
|
|
391
|
+
// Re-adding a ref that is still attached conflicts on its
|
|
392
|
+
// target, so every attached ref is removed and the desired
|
|
393
|
+
// set re-added in the same update.
|
|
394
|
+
"secret-rm": (spec?.Secrets ?? []).flatMap((s) => s.SecretName ? [s.SecretName] : []),
|
|
340
395
|
"secret-add": desired.secrets.map(formatRef),
|
|
396
|
+
"config-rm": (spec?.Configs ?? []).flatMap((c) => c.ConfigName ? [c.ConfigName] : []),
|
|
341
397
|
"config-add": desired.configs.map(formatRef),
|
|
342
398
|
"read-only": desired.readOnlyRootFs || undefined,
|
|
399
|
+
"publish-rm": portsToRemove,
|
|
343
400
|
"publish-add": desired.ports.map(formatPublish),
|
|
344
401
|
"label-add": allDesiredLabels,
|
|
345
402
|
"label-rm": labelsToRemove,
|
|
403
|
+
"env-rm": envToRemove,
|
|
346
404
|
"env-add": environment,
|
|
347
405
|
args: desired.command.length > 0
|
|
348
406
|
? desired.command.concat(desired.args).join(" ")
|
|
349
407
|
: undefined,
|
|
350
|
-
})
|
|
351
|
-
|
|
408
|
+
})
|
|
409
|
+
.pipe(Effect.as(undefined), Effect.catchTag("PlatformError", (error) => Effect.succeed(error)));
|
|
410
|
+
const updated = yield* inspectOrDie(inspect, output.id, desired.context);
|
|
411
|
+
// Swarm clears `UpdateStatus` whenever it accepts an update, so
|
|
412
|
+
// any status here belongs to this update.
|
|
413
|
+
const status = updated.UpdateStatus;
|
|
414
|
+
if (status?.State === "rollback_completed" ||
|
|
415
|
+
status?.State === "rollback_paused" ||
|
|
416
|
+
status?.State === "paused") {
|
|
417
|
+
return yield* new DockerServiceUpdateFailed({
|
|
418
|
+
service: updated.Spec.Name,
|
|
419
|
+
state: status.State,
|
|
420
|
+
reason: status.Message ?? "",
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
if (updateError) {
|
|
424
|
+
return yield* updateError;
|
|
425
|
+
}
|
|
426
|
+
// Best-effort: the service now runs the new content-addressed
|
|
427
|
+
// image, so drop the one built for the previous bundle.
|
|
428
|
+
if (output.code && output.code.hash !== resolved.codeHash) {
|
|
429
|
+
yield* docker.image
|
|
430
|
+
.remove(output.image, true, desired.context)
|
|
431
|
+
.pipe(Effect.catchCause(() => Effect.void));
|
|
432
|
+
}
|
|
433
|
+
return toServiceAttributes(updated, desired.context, code);
|
|
352
434
|
}
|
|
353
435
|
}
|
|
354
436
|
const existingByName = yield* inspect(desired.name, desired.context);
|
|
@@ -364,7 +446,7 @@ export const ServiceProvider = () => Provider.effect(Service, Effect.gen(functio
|
|
|
364
446
|
image,
|
|
365
447
|
replicas: desired.replicas,
|
|
366
448
|
"endpoint-mode": desired.endpointMode,
|
|
367
|
-
network: desired.networks.map(
|
|
449
|
+
network: desired.networks.map(formatNetwork),
|
|
368
450
|
constraint: desired.constraints,
|
|
369
451
|
"replicas-max-per-node": desired.maxReplicasPerNode,
|
|
370
452
|
"placement-pref": desired.preferences,
|
|
@@ -457,6 +539,65 @@ const normalizeDesired = (id, props, instanceId) => servicePhysicalName(id, prop
|
|
|
457
539
|
readOnlyRootFs: props.readOnlyRootFs ?? false,
|
|
458
540
|
labels: props.labels ?? {},
|
|
459
541
|
})));
|
|
542
|
+
/**
|
|
543
|
+
* Fields `docker service update` changes in place. Swarm rolls the tasks
|
|
544
|
+
* onto the new spec following `updateConfig`, so `order: "start-first"` and
|
|
545
|
+
* `failureAction: "rollback"` apply.
|
|
546
|
+
*/
|
|
547
|
+
const inPlaceFields = new Set([
|
|
548
|
+
"image",
|
|
549
|
+
"replicas",
|
|
550
|
+
"environment",
|
|
551
|
+
"labels",
|
|
552
|
+
"networks",
|
|
553
|
+
"constraints",
|
|
554
|
+
"maxReplicasPerNode",
|
|
555
|
+
"updateConfig",
|
|
556
|
+
"rollbackConfig",
|
|
557
|
+
"restartPolicy",
|
|
558
|
+
"healthcheck",
|
|
559
|
+
"stopGracePeriod",
|
|
560
|
+
"volumes",
|
|
561
|
+
"secrets",
|
|
562
|
+
"configs",
|
|
563
|
+
"ports",
|
|
564
|
+
]);
|
|
565
|
+
/**
|
|
566
|
+
* Settings `service update` can change but not reset to the engine default:
|
|
567
|
+
* removing one, or a field inside one, replaces the service.
|
|
568
|
+
*/
|
|
569
|
+
const resettableFields = new Set([
|
|
570
|
+
"maxReplicasPerNode",
|
|
571
|
+
"updateConfig",
|
|
572
|
+
"rollbackConfig",
|
|
573
|
+
"restartPolicy",
|
|
574
|
+
"healthcheck",
|
|
575
|
+
"stopGracePeriod",
|
|
576
|
+
]);
|
|
577
|
+
const clearsSetting = (olds, news) => {
|
|
578
|
+
if (olds === undefined)
|
|
579
|
+
return false;
|
|
580
|
+
if (news === undefined)
|
|
581
|
+
return true;
|
|
582
|
+
if (typeof olds !== "object" || olds === null)
|
|
583
|
+
return false;
|
|
584
|
+
return Object.entries(olds).some(([key, value]) => value !== undefined && news[key] === undefined);
|
|
585
|
+
};
|
|
586
|
+
/**
|
|
587
|
+
* `--publish-rm` matches target, protocol and mode, and `--publish-add` skips
|
|
588
|
+
* a port already in the spec. Dropping one of several ports that share a
|
|
589
|
+
* target therefore drops the kept ones too, so that change replaces.
|
|
590
|
+
*/
|
|
591
|
+
const dropsSharedTargetPort = (olds, news) => {
|
|
592
|
+
const kept = new Set(news.ports.map(formatPublish));
|
|
593
|
+
const key = (port) => `${port.internal}/${port.protocol}/${port.mode}`;
|
|
594
|
+
const removedKeys = new Set(olds.ports.filter((p) => !kept.has(formatPublish(p))).map(key));
|
|
595
|
+
return olds.ports.some((p) => kept.has(formatPublish(p)) && removedKeys.has(key(p)));
|
|
596
|
+
};
|
|
597
|
+
const requiresReplacement = (olds, news) => dropsSharedTargetPort(olds, news) ||
|
|
598
|
+
Object.keys(news).some((key) => !deepEqual(olds[key], news[key]) &&
|
|
599
|
+
(!inPlaceFields.has(key) ||
|
|
600
|
+
(resettableFields.has(key) && clearsSetting(olds[key], news[key]))));
|
|
460
601
|
const normalizeImageRef = (image) => typeof image === "string" ? image : image.imageRef;
|
|
461
602
|
const normalizeEnvironment = (environment) => Object.fromEntries(Object.entries(environment ?? {}).map(([key, value]) => [
|
|
462
603
|
key,
|
|
@@ -496,6 +637,7 @@ const formatMount = (volume) => [
|
|
|
496
637
|
`target=${volume.containerPath}`,
|
|
497
638
|
...(volume.readOnly ? ["readonly=true"] : []),
|
|
498
639
|
].join(",");
|
|
640
|
+
const formatNetwork = (network) => [`name=${network.name}`, ...(network.aliases ?? []).map((a) => `alias=${a}`)].join(",");
|
|
499
641
|
const formatRef = (ref) => Object.entries(ref)
|
|
500
642
|
.filter(([, value]) => value !== undefined)
|
|
501
643
|
.map(([key, value]) => `${key}=${value}`)
|