@alchemy.run/docker 2.0.0-beta.84 → 2.0.0-beta.86
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 +16 -0
- package/lib/Bootstrap.d.ts.map +1 -1
- package/lib/Bootstrap.js +2 -1
- package/lib/Bootstrap.js.map +1 -1
- package/lib/BuildCache.d.ts +87 -0
- package/lib/BuildCache.d.ts.map +1 -0
- package/lib/BuildCache.js +39 -0
- package/lib/BuildCache.js.map +1 -0
- package/lib/BuildHash.d.ts +20 -3
- package/lib/BuildHash.d.ts.map +1 -1
- package/lib/BuildHash.js +60 -21
- package/lib/BuildHash.js.map +1 -1
- package/lib/BuildPlan.d.ts +202 -0
- package/lib/BuildPlan.d.ts.map +1 -0
- package/lib/BuildPlan.js +514 -0
- package/lib/BuildPlan.js.map +1 -0
- package/lib/Container.d.ts +122 -1
- package/lib/Container.d.ts.map +1 -1
- package/lib/Container.js +232 -4
- package/lib/Container.js.map +1 -1
- package/lib/Context.d.ts +20 -1
- package/lib/Context.d.ts.map +1 -1
- package/lib/Context.js +15 -0
- package/lib/Context.js.map +1 -1
- package/lib/Docker.d.ts +113 -1
- package/lib/Docker.d.ts.map +1 -1
- package/lib/Docker.js +50 -8
- package/lib/Docker.js.map +1 -1
- package/lib/Dockerfile.d.ts +0 -2
- package/lib/Dockerfile.d.ts.map +1 -1
- package/lib/Dockerfile.js.map +1 -1
- package/lib/DockerfileParser.d.ts +125 -0
- package/lib/DockerfileParser.d.ts.map +1 -0
- package/lib/DockerfileParser.js +1040 -0
- package/lib/DockerfileParser.js.map +1 -0
- package/lib/HealthcheckCommand.d.ts.map +1 -1
- package/lib/HealthcheckCommand.js.map +1 -1
- package/lib/Image.d.ts +69 -13
- package/lib/Image.d.ts.map +1 -1
- package/lib/Image.js +59 -9
- package/lib/Image.js.map +1 -1
- package/lib/ImageArchive.d.ts +41 -0
- package/lib/ImageArchive.d.ts.map +1 -0
- package/lib/ImageArchive.js +54 -0
- package/lib/ImageArchive.js.map +1 -0
- package/lib/ImageSource.d.ts +151 -8
- package/lib/ImageSource.d.ts.map +1 -1
- package/lib/ImageSource.js +247 -72
- package/lib/ImageSource.js.map +1 -1
- package/lib/Network.d.ts +175 -3
- package/lib/Network.d.ts.map +1 -1
- package/lib/Network.js +296 -8
- package/lib/Network.js.map +1 -1
- package/lib/Providers.d.ts.map +1 -1
- package/lib/Providers.js.map +1 -1
- package/lib/Registry.d.ts.map +1 -1
- package/lib/Registry.js.map +1 -1
- package/lib/RegistryError.d.ts.map +1 -1
- package/lib/RegistryError.js.map +1 -1
- package/lib/RemoteImage.d.ts.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/lib/ServiceImage.d.ts.map +1 -1
- package/lib/ServiceImage.js.map +1 -1
- package/lib/ShellWord.d.ts +28 -0
- package/lib/ShellWord.d.ts.map +1 -0
- package/lib/ShellWord.js +301 -0
- package/lib/ShellWord.js.map +1 -0
- package/lib/Swarm.d.ts.map +1 -1
- package/lib/Swarm.js.map +1 -1
- package/lib/Volume.d.ts +24 -1
- package/lib/Volume.d.ts.map +1 -1
- package/lib/Volume.js +16 -0
- package/lib/Volume.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +9 -9
- package/src/Bootstrap.ts +2 -0
- package/src/BuildCache.ts +111 -0
- package/src/BuildHash.ts +85 -26
- package/src/BuildPlan.ts +758 -0
- package/src/Container.ts +361 -5
- package/src/Context.ts +27 -1
- package/src/Docker.ts +157 -9
- package/src/Dockerfile.ts +0 -2
- package/src/DockerfileParser.ts +1152 -0
- package/src/Image.ts +75 -15
- package/src/ImageArchive.ts +77 -0
- package/src/ImageSource.ts +391 -99
- package/src/Network.ts +432 -10
- package/src/RemoteImage.ts +1 -1
- package/src/Service.ts +246 -62
- package/src/ShellWord.ts +326 -0
- package/src/Volume.ts +33 -1
package/lib/ImageSource.d.ts
CHANGED
|
@@ -3,7 +3,9 @@ import * as Bundle from "alchemy/Bundle/Bundle";
|
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
4
|
import * as FileSystem from "effect/FileSystem";
|
|
5
5
|
import * as Path from "effect/Path";
|
|
6
|
+
import type * as Redacted from "effect/Redacted";
|
|
6
7
|
import type * as rolldown from "rolldown";
|
|
8
|
+
import { type BuildCacheOptions } from "./BuildCache.ts";
|
|
7
9
|
import { Docker, type RegistryCredentials } from "./Docker.ts";
|
|
8
10
|
import { type InlineDockerfile } from "./Dockerfile.ts";
|
|
9
11
|
/**
|
|
@@ -23,6 +25,9 @@ import { type InlineDockerfile } from "./Dockerfile.ts";
|
|
|
23
25
|
* ENTRYPOINT) and pushed as a derived image. `main` absent → the
|
|
24
26
|
* environment runs verbatim: `image` is mirrored (docker pull → tag →
|
|
25
27
|
* push, content-addressed on the ref), a Dockerfile builds as-is.
|
|
28
|
+
* - `main` absent and an {@link ImageAgent} requested → the environment
|
|
29
|
+
* still runs verbatim, and the agent is pushed beside it as an image of
|
|
30
|
+
* its own, for the platform to mount into the environment's container.
|
|
26
31
|
*
|
|
27
32
|
* Where images land is an {@link ImageRegistryTarget}: ECR supplies one that
|
|
28
33
|
* auto-creates a private repository; a plain registry (a local `registry`
|
|
@@ -40,6 +45,13 @@ export interface BundledImageSource {
|
|
|
40
45
|
* `import.meta.url` from an inline Effect program.
|
|
41
46
|
*/
|
|
42
47
|
main: string;
|
|
48
|
+
/**
|
|
49
|
+
* @internal Dockerfile lines contributed by mount bindings (see
|
|
50
|
+
* `alchemy/Mount`), inserted after the environment preamble so a
|
|
51
|
+
* program change doesn't reinstall them. Hosts fold these in from their
|
|
52
|
+
* bindings; users don't set them.
|
|
53
|
+
*/
|
|
54
|
+
install?: ReadonlyArray<string>;
|
|
43
55
|
/**
|
|
44
56
|
* Environment image: used as the generated Dockerfile's `FROM`. Any
|
|
45
57
|
* registry ref works (private non-ECR registries require docker
|
|
@@ -71,15 +83,44 @@ export interface BundledImageSource {
|
|
|
71
83
|
* Bundler configuration for the entrypoint. Unused code is tree-shaken.
|
|
72
84
|
* `effect`, alchemy, and `@distilled.cloud` are marked pure so unused
|
|
73
85
|
* parts prune more aggressively. List extra packages with
|
|
74
|
-
* `pure.packages`, or disable with `pure: false`.
|
|
86
|
+
* `pure.packages`, or disable with `pure: false`. `cache` configures the
|
|
87
|
+
* image build's BuildKit layer cache.
|
|
88
|
+
*/
|
|
89
|
+
build?: Bundle.BundleConfig & BuildCacheOptions;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Build arguments, BuildKit secrets and the layer cache for an image built
|
|
93
|
+
* from the user's own Dockerfile (`context` / `dockerfile`).
|
|
94
|
+
*/
|
|
95
|
+
export interface DockerfileBuild extends BuildCacheOptions {
|
|
96
|
+
/**
|
|
97
|
+
* Docker build arguments (`--build-arg`), read by `ARG` instructions.
|
|
98
|
+
* They are part of the image's content hash, so changing one rebuilds the
|
|
99
|
+
* image. Never pass secrets here: build args are visible in the image
|
|
100
|
+
* history. Use {@link secrets} instead.
|
|
75
101
|
*/
|
|
76
|
-
|
|
102
|
+
args?: Record<string, string>;
|
|
103
|
+
/**
|
|
104
|
+
* BuildKit secrets, keyed by id. Mount one in a `RUN` step with
|
|
105
|
+
* `--mount=type=secret,id=<id>` and read it from `/run/secrets/<id>`, or
|
|
106
|
+
* add `env=<NAME>` to expose it as an environment variable for that step.
|
|
107
|
+
*
|
|
108
|
+
* A secret never enters the image, its build history, or `docker`'s argv.
|
|
109
|
+
* Secrets are left out of the image's content hash, so rotating one does
|
|
110
|
+
* not rebuild the image.
|
|
111
|
+
*/
|
|
112
|
+
secrets?: Record<string, Redacted.Redacted<string>>;
|
|
113
|
+
}
|
|
114
|
+
/** The `build` prop of a source built from the user's own Dockerfile. */
|
|
115
|
+
export interface DockerfileBuildOptions {
|
|
116
|
+
/** Build arguments, BuildKit secrets and the layer cache for the Dockerfile build. */
|
|
117
|
+
build?: DockerfileBuild;
|
|
77
118
|
}
|
|
78
119
|
/**
|
|
79
120
|
* Build the image from the user's own Dockerfile and build context — no
|
|
80
121
|
* Effect program is bundled.
|
|
81
122
|
*/
|
|
82
|
-
export interface DockerfileImageSource {
|
|
123
|
+
export interface DockerfileImageSource extends DockerfileBuildOptions {
|
|
83
124
|
/**
|
|
84
125
|
* Docker build context directory. Optional when {@link dockerfile} is
|
|
85
126
|
* inline content (which builds with an empty context).
|
|
@@ -113,10 +154,13 @@ export type ImageSourceProps = BundledImageSource | DockerfileImageSource | Regi
|
|
|
113
154
|
export interface ImageSourceLike {
|
|
114
155
|
main?: string;
|
|
115
156
|
handler?: string;
|
|
116
|
-
build
|
|
157
|
+
/** Bundler config for `main`; Docker build args and secrets for `context`. */
|
|
158
|
+
build?: Bundle.BundleConfig & DockerfileBuild;
|
|
117
159
|
context?: string;
|
|
118
160
|
dockerfile?: string | InlineDockerfile;
|
|
119
161
|
image?: string;
|
|
162
|
+
/** @internal Mount-binding install lines (see {@link BundledImageSource.install}). */
|
|
163
|
+
install?: ReadonlyArray<string>;
|
|
120
164
|
}
|
|
121
165
|
export type ImageSourceKind = "main" | "context" | "image";
|
|
122
166
|
/**
|
|
@@ -126,9 +170,35 @@ export type ImageSourceKind = "main" | "context" | "image";
|
|
|
126
170
|
* is an external docker build.
|
|
127
171
|
*/
|
|
128
172
|
export declare const imageSourceKind: (source: ImageSourceLike) => ImageSourceKind | undefined;
|
|
173
|
+
declare const DockerfileBuildConflict_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 & {
|
|
174
|
+
readonly _tag: "DockerfileBuildConflict";
|
|
175
|
+
} & Readonly<A>;
|
|
176
|
+
/**
|
|
177
|
+
* `build.args` or `build.secrets` set on an image that is not built from the
|
|
178
|
+
* user's own Dockerfile (a `main` program or a pre-built `image`), or
|
|
179
|
+
* `build.cache` set on a pre-built `image`, which is never built.
|
|
180
|
+
*/
|
|
181
|
+
export declare class DockerfileBuildConflict extends DockerfileBuildConflict_base<{
|
|
182
|
+
readonly id: string;
|
|
183
|
+
readonly source: "main" | "image";
|
|
184
|
+
readonly option?: "cache";
|
|
185
|
+
}> {
|
|
186
|
+
get message(): string;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Dies with {@link DockerfileBuildConflict} when `build.args` or
|
|
190
|
+
* `build.secrets` are set alongside `main` or `image`, or `build.cache`
|
|
191
|
+
* alongside `image`.
|
|
192
|
+
*/
|
|
193
|
+
export declare const validateDockerfileBuild: (id: string, source: {
|
|
194
|
+
main?: string;
|
|
195
|
+
image?: string;
|
|
196
|
+
build?: DockerfileBuild;
|
|
197
|
+
}) => Effect.Effect<void>;
|
|
129
198
|
/**
|
|
130
199
|
* Validate environment-source exclusivity. Dies (plan-time defect) on
|
|
131
|
-
* `image`+`dockerfile`, `image`+`context`,
|
|
200
|
+
* `image`+`dockerfile`, `image`+`context`, inline-`dockerfile`+`context`, or
|
|
201
|
+
* build args/secrets without a Dockerfile build.
|
|
132
202
|
*/
|
|
133
203
|
export declare const validateImageSource: (id: string, source: ImageSourceLike) => Effect.Effect<void>;
|
|
134
204
|
/**
|
|
@@ -178,11 +248,49 @@ export interface ResolveContainerImageOptions {
|
|
|
178
248
|
* generated entry module source.
|
|
179
249
|
*/
|
|
180
250
|
bootstrap: (importPath: string) => string;
|
|
251
|
+
/**
|
|
252
|
+
* Publish an agent beside an image that has no `main`. See
|
|
253
|
+
* {@link ImageAgent}. Ignored for a `main` source, whose program serves the
|
|
254
|
+
* agent itself.
|
|
255
|
+
*/
|
|
256
|
+
agent?: ImageAgent;
|
|
181
257
|
/** Plan-status session used to emit build/push progress notes. */
|
|
182
258
|
session: {
|
|
183
259
|
note: (message: string) => Effect.Effect<void>;
|
|
184
260
|
};
|
|
185
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* A program the platform runs inside a container whose image has none of its
|
|
264
|
+
* own (`image` or `context`), so it can drive the container: a sandbox agent
|
|
265
|
+
* that runs commands and serves files inside it.
|
|
266
|
+
*
|
|
267
|
+
* The image itself is never changed. The agent is bundled and pushed as an
|
|
268
|
+
* image of its own, to the same repository, under an `agent-` tag. Run as a
|
|
269
|
+
* container, that image copies the agent and its Bun runtime into
|
|
270
|
+
* {@link IMAGE_AGENT_DIR} and exits. A platform mounts a volume there, shares
|
|
271
|
+
* it with the image's container, and starts that container with
|
|
272
|
+
* {@link imageAgentEntryPoint}.
|
|
273
|
+
*/
|
|
274
|
+
export interface ImageAgent {
|
|
275
|
+
/**
|
|
276
|
+
* Module that exports `bootstrap(): Promise<void>`, which runs the agent.
|
|
277
|
+
* A path or a `file:` URL.
|
|
278
|
+
*/
|
|
279
|
+
main: string;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Where an {@link ImageAgent}'s image copies the agent and its runtime, and
|
|
283
|
+
* where the image's container finds them.
|
|
284
|
+
*/
|
|
285
|
+
export declare const IMAGE_AGENT_DIR = "/opt/alchemy/sandbox";
|
|
286
|
+
/**
|
|
287
|
+
* The entry point that starts an {@link ImageAgent} from
|
|
288
|
+
* {@link IMAGE_AGENT_DIR}. Bun starts through the loader that came with it,
|
|
289
|
+
* so the image's own libc (glibc, another musl, or none) is never consulted
|
|
290
|
+
* and the image needs nothing installed. The container's command arrives as
|
|
291
|
+
* the agent's arguments.
|
|
292
|
+
*/
|
|
293
|
+
export declare const imageAgentEntryPoint: ReadonlyArray<string>;
|
|
186
294
|
/**
|
|
187
295
|
* Content hash for the sources whose identity is computable WITHOUT running
|
|
188
296
|
* a bundler:
|
|
@@ -197,7 +305,32 @@ export interface ResolveContainerImageOptions {
|
|
|
197
305
|
* Providers use this in `diff` to surface content drift (files changed under
|
|
198
306
|
* an unchanged `context` path) as an update.
|
|
199
307
|
*/
|
|
200
|
-
export declare const computeStaticSourceHash: (source: ImageSourceLike, platform?: string | undefined) => Effect.Effect<string | undefined, import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path>;
|
|
308
|
+
export declare const computeStaticSourceHash: (source: ImageSourceLike, platform?: string | undefined) => Effect.Effect<string | undefined, import("./BuildHash.ts").BuildHashInvalidProps | import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path>;
|
|
309
|
+
/**
|
|
310
|
+
* The exact rolldown input/output options `bundleMainProgram` hands to
|
|
311
|
+
* `Bundle.build` — shared with {@link watchMain} so a dev watcher's
|
|
312
|
+
* `Bundle.watch` observes the identical module graph.
|
|
313
|
+
*/
|
|
314
|
+
export declare const mainBundleOptions: (source: BundledImageSource, entry: string, cwd: string, plugins?: rolldown.RolldownPluginOption) => {
|
|
315
|
+
inputOptions: rolldown.InputOptions;
|
|
316
|
+
outputOptions: rolldown.OutputOptions;
|
|
317
|
+
};
|
|
318
|
+
/**
|
|
319
|
+
* Bundle the Effect program behind a `main` source: every emitted file
|
|
320
|
+
* (entry + shared chunks) and the bundle hash. Needs no Docker engine, so
|
|
321
|
+
* builders that are not Docker (`BuildPlan`) share it.
|
|
322
|
+
*/
|
|
323
|
+
export declare const bundleMainProgram: (options: {
|
|
324
|
+
source: BundledImageSource;
|
|
325
|
+
isExternal?: boolean;
|
|
326
|
+
bootstrap: (importPath: string) => string;
|
|
327
|
+
}) => Effect.Effect<{
|
|
328
|
+
files: {
|
|
329
|
+
path: string;
|
|
330
|
+
content: Uint8Array<ArrayBufferLike>;
|
|
331
|
+
}[];
|
|
332
|
+
hash: string;
|
|
333
|
+
}, Bundle.BundleError | import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path>;
|
|
201
334
|
/**
|
|
202
335
|
* Init-time constructor for the image-source resolver. Resolves the services
|
|
203
336
|
* that are only available at provider-layer construction (Docker, the
|
|
@@ -210,6 +343,14 @@ export declare const makeContainerImageSource: Effect.Effect<{
|
|
|
210
343
|
imageUri: string;
|
|
211
344
|
repositoryUri: string;
|
|
212
345
|
codeHash: string;
|
|
346
|
+
agent: undefined;
|
|
347
|
+
} | {
|
|
348
|
+
imageUri: string;
|
|
349
|
+
repositoryUri: string;
|
|
350
|
+
codeHash: string;
|
|
351
|
+
agent: {
|
|
352
|
+
imageUri: string;
|
|
353
|
+
};
|
|
213
354
|
}, any, R | FileSystem.FileSystem | Path.Path | import("alchemy/Stack").Stack | import("alchemy/Stage").Stage>;
|
|
214
355
|
hash: (options: {
|
|
215
356
|
source: ImageSourceLike;
|
|
@@ -217,7 +358,8 @@ export declare const makeContainerImageSource: Effect.Effect<{
|
|
|
217
358
|
port?: number;
|
|
218
359
|
isExternal?: boolean;
|
|
219
360
|
bootstrap: (importPath: string) => string;
|
|
220
|
-
|
|
361
|
+
agent?: ImageAgent;
|
|
362
|
+
}) => Effect.Effect<string | undefined, import("./BuildHash.ts").BuildHashInvalidProps | Bundle.BundleError | import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path>;
|
|
221
363
|
watchMain: (options: {
|
|
222
364
|
source: BundledImageSource;
|
|
223
365
|
isExternal?: boolean;
|
|
@@ -225,10 +367,11 @@ export declare const makeContainerImageSource: Effect.Effect<{
|
|
|
225
367
|
}) => Effect.Effect<{
|
|
226
368
|
inputOptions: rolldown.InputOptions;
|
|
227
369
|
outputOptions: rolldown.OutputOptions;
|
|
228
|
-
extra: Bundle.BundleConfig | undefined;
|
|
370
|
+
extra: (Bundle.BundleConfig & BuildCacheOptions) | undefined;
|
|
229
371
|
}, import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path>;
|
|
230
372
|
}, never, AlchemyContext | Docker | Path.Path>;
|
|
231
373
|
/** The resolver service returned by {@link makeContainerImageSource}. */
|
|
232
374
|
export interface ContainerImageSource extends Effect.Success<typeof makeContainerImageSource> {
|
|
233
375
|
}
|
|
376
|
+
export {};
|
|
234
377
|
//# sourceMappingURL=ImageSource.d.ts.map
|
package/lib/ImageSource.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageSource.d.ts","
|
|
1
|
+
{"version":3,"file":"ImageSource.d.ts","sources":["../src/ImageSource.ts"],"names":[],"mappings":"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"}
|