@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.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { AlchemyContext } from "alchemy/AlchemyContext";
|
|
2
2
|
import * as Bundle from "alchemy/Bundle/Bundle";
|
|
3
3
|
import { findCwdForBundle, getStableContextDir, resolveMainPath } from "alchemy/Bundle/TempRoot";
|
|
4
|
-
import { hashDirectory } from "alchemy/Command/Memo";
|
|
5
4
|
import { sha256Object } from "alchemy/Util/sha256";
|
|
5
|
+
import * as Data from "effect/Data";
|
|
6
6
|
import * as Effect from "effect/Effect";
|
|
7
7
|
import * as FileSystem from "effect/FileSystem";
|
|
8
8
|
import * as Path from "effect/Path";
|
|
9
9
|
import * as Schedule from "effect/Schedule";
|
|
10
|
+
import { imageBuildCacheOptions } from "./BuildCache.js";
|
|
11
|
+
import { hashDockerBuildInputs } from "./BuildHash.js";
|
|
10
12
|
import { Docker } from "./Docker.js";
|
|
11
13
|
import { isInlineDockerfile } from "./Dockerfile.js";
|
|
12
14
|
/**
|
|
@@ -22,9 +24,36 @@ export const imageSourceKind = (source) => source.main !== undefined
|
|
|
22
24
|
: source.context !== undefined || source.dockerfile !== undefined
|
|
23
25
|
? "context"
|
|
24
26
|
: undefined;
|
|
27
|
+
/**
|
|
28
|
+
* `build.args` or `build.secrets` set on an image that is not built from the
|
|
29
|
+
* user's own Dockerfile (a `main` program or a pre-built `image`), or
|
|
30
|
+
* `build.cache` set on a pre-built `image`, which is never built.
|
|
31
|
+
*/
|
|
32
|
+
export class DockerfileBuildConflict extends Data.TaggedError("DockerfileBuildConflict") {
|
|
33
|
+
get message() {
|
|
34
|
+
return this.option === "cache"
|
|
35
|
+
? `'${this.id}': 'build.cache' applies to an image Alchemy builds ('main' / 'context' / 'dockerfile'), not to a pre-built 'image'`
|
|
36
|
+
: `'${this.id}': 'build.args' and 'build.secrets' apply to an image built from your own Dockerfile ('context' / 'dockerfile'), not to '${this.source}'`;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Dies with {@link DockerfileBuildConflict} when `build.args` or
|
|
41
|
+
* `build.secrets` are set alongside `main` or `image`, or `build.cache`
|
|
42
|
+
* alongside `image`.
|
|
43
|
+
*/
|
|
44
|
+
export const validateDockerfileBuild = (id, source) => (source.main !== undefined || source.image !== undefined) &&
|
|
45
|
+
(source.build?.args !== undefined || source.build?.secrets !== undefined)
|
|
46
|
+
? Effect.die(new DockerfileBuildConflict({
|
|
47
|
+
id,
|
|
48
|
+
source: source.main !== undefined ? "main" : "image",
|
|
49
|
+
}))
|
|
50
|
+
: source.main === undefined && source.image !== undefined && source.build?.cache
|
|
51
|
+
? Effect.die(new DockerfileBuildConflict({ id, source: "image", option: "cache" }))
|
|
52
|
+
: Effect.void;
|
|
25
53
|
/**
|
|
26
54
|
* Validate environment-source exclusivity. Dies (plan-time defect) on
|
|
27
|
-
* `image`+`dockerfile`, `image`+`context`,
|
|
55
|
+
* `image`+`dockerfile`, `image`+`context`, inline-`dockerfile`+`context`, or
|
|
56
|
+
* build args/secrets without a Dockerfile build.
|
|
28
57
|
*/
|
|
29
58
|
export const validateImageSource = (id, source) => {
|
|
30
59
|
if (source.image !== undefined && source.dockerfile !== undefined) {
|
|
@@ -38,8 +67,60 @@ export const validateImageSource = (id, source) => {
|
|
|
38
67
|
source.context !== undefined) {
|
|
39
68
|
return Effect.die(new Error(`'${id}': inline 'dockerfile' content builds with no context — use a path dockerfile with 'context', or drop 'context'`));
|
|
40
69
|
}
|
|
41
|
-
return
|
|
70
|
+
return validateDockerfileBuild(id, source);
|
|
42
71
|
};
|
|
72
|
+
/**
|
|
73
|
+
* Where an {@link ImageAgent}'s image copies the agent and its runtime, and
|
|
74
|
+
* where the image's container finds them.
|
|
75
|
+
*/
|
|
76
|
+
export const IMAGE_AGENT_DIR = "/opt/alchemy/sandbox";
|
|
77
|
+
/**
|
|
78
|
+
* The entry point that starts an {@link ImageAgent} from
|
|
79
|
+
* {@link IMAGE_AGENT_DIR}. Bun starts through the loader that came with it,
|
|
80
|
+
* so the image's own libc (glibc, another musl, or none) is never consulted
|
|
81
|
+
* and the image needs nothing installed. The container's command arrives as
|
|
82
|
+
* the agent's arguments.
|
|
83
|
+
*/
|
|
84
|
+
export const imageAgentEntryPoint = [
|
|
85
|
+
`${IMAGE_AGENT_DIR}/ld-musl.so.1`,
|
|
86
|
+
"--library-path",
|
|
87
|
+
`${IMAGE_AGENT_DIR}/lib`,
|
|
88
|
+
`${IMAGE_AGENT_DIR}/bun`,
|
|
89
|
+
`${IMAGE_AGENT_DIR}/index.mjs`,
|
|
90
|
+
];
|
|
91
|
+
/**
|
|
92
|
+
* The image the agent's runtime comes from. The musl build of Bun runs on any
|
|
93
|
+
* Linux image once its loader and C++ runtime come with it.
|
|
94
|
+
*/
|
|
95
|
+
const AGENT_RUNTIME_IMAGE = "oven/bun:1-alpine";
|
|
96
|
+
/** Where the agent's bundle sits inside its own image. */
|
|
97
|
+
const AGENT_BUNDLE_DIR = "/agent";
|
|
98
|
+
/**
|
|
99
|
+
* The Dockerfile of an {@link ImageAgent}'s image: the runtime's image plus
|
|
100
|
+
* the agent's bundle. Its entry point copies the runtime, the loader, the
|
|
101
|
+
* C++ runtime and the bundle into {@link IMAGE_AGENT_DIR}, where the platform
|
|
102
|
+
* mounted a volume, and exits.
|
|
103
|
+
*/
|
|
104
|
+
const AGENT_DOCKERFILE = `${[
|
|
105
|
+
`FROM ${AGENT_RUNTIME_IMAGE}`,
|
|
106
|
+
`COPY index.mjs ${AGENT_BUNDLE_DIR}/index.mjs`,
|
|
107
|
+
`COPY *.js ${AGENT_BUNDLE_DIR}/`,
|
|
108
|
+
`ENTRYPOINT ${JSON.stringify([
|
|
109
|
+
"/bin/sh",
|
|
110
|
+
"-ec",
|
|
111
|
+
[
|
|
112
|
+
`mkdir -p ${IMAGE_AGENT_DIR}/lib`,
|
|
113
|
+
`cp /usr/local/bin/bun ${IMAGE_AGENT_DIR}/bun`,
|
|
114
|
+
`cp /lib/ld-musl-*.so.1 ${IMAGE_AGENT_DIR}/ld-musl.so.1`,
|
|
115
|
+
`cp /usr/lib/libstdc++.so.6 /usr/lib/libgcc_s.so.1 ${IMAGE_AGENT_DIR}/lib/`,
|
|
116
|
+
`cp ${AGENT_BUNDLE_DIR}/* ${IMAGE_AGENT_DIR}/`,
|
|
117
|
+
// The image's container may run as any user.
|
|
118
|
+
`chmod -R a+rX ${IMAGE_AGENT_DIR}`,
|
|
119
|
+
].join(" && "),
|
|
120
|
+
])}`,
|
|
121
|
+
].join("\n")}\n`;
|
|
122
|
+
/** The generated entry of an {@link ImageAgent}: import the module and run it. */
|
|
123
|
+
const agentEntry = (importPath) => `import { bootstrap } from ${JSON.stringify(importPath)};\nawait bootstrap();\n`;
|
|
43
124
|
/**
|
|
44
125
|
* Resolve the Dockerfile path for a `context` source: always relative to the
|
|
45
126
|
* cwd (absolute paths pass through), defaulting to `${context}/Dockerfile`.
|
|
@@ -90,23 +171,80 @@ export const computeStaticSourceHash = Effect.fn(function* (source, platform) {
|
|
|
90
171
|
return (yield* sha256Object({
|
|
91
172
|
dockerfile: source.dockerfile.content,
|
|
92
173
|
platform: platform ?? "linux/amd64",
|
|
174
|
+
// Absent when unset, so existing hashes hold. Secrets are excluded.
|
|
175
|
+
buildArgs: source.build?.args,
|
|
93
176
|
})).slice(0, 16);
|
|
94
177
|
}
|
|
95
|
-
const fs = yield* FileSystem.FileSystem;
|
|
96
178
|
const { context, dockerfile } = yield* resolveContextPaths({
|
|
97
179
|
context: source.context,
|
|
98
180
|
dockerfile: source.dockerfile,
|
|
99
181
|
});
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
return (yield*
|
|
103
|
-
|
|
104
|
-
dockerfile
|
|
182
|
+
// Hash what Docker receives: the context `.dockerignore` keeps (never a
|
|
183
|
+
// lockfile above it), the Dockerfile, platform and build args.
|
|
184
|
+
return (yield* hashDockerBuildInputs({
|
|
185
|
+
context,
|
|
186
|
+
dockerfile,
|
|
105
187
|
platform: platform ?? "linux/amd64",
|
|
106
|
-
|
|
188
|
+
buildArgs: source.build?.args,
|
|
189
|
+
}, "effective")).slice(0, 16);
|
|
107
190
|
}
|
|
108
191
|
return undefined;
|
|
109
192
|
});
|
|
193
|
+
/**
|
|
194
|
+
* The exact rolldown input/output options `bundleMainProgram` hands to
|
|
195
|
+
* `Bundle.build` — shared with {@link watchMain} so a dev watcher's
|
|
196
|
+
* `Bundle.watch` observes the identical module graph.
|
|
197
|
+
*/
|
|
198
|
+
export const mainBundleOptions = (source, entry, cwd, plugins) => ({
|
|
199
|
+
inputOptions: {
|
|
200
|
+
...source.build?.input,
|
|
201
|
+
input: entry,
|
|
202
|
+
cwd,
|
|
203
|
+
platform: "node",
|
|
204
|
+
// The container runs on `bun`; keep `bun`/`bun:*` external (the
|
|
205
|
+
// runtime provides them) and resolve the `bun` export condition
|
|
206
|
+
// so `@effect/platform-bun` picks its Bun implementations.
|
|
207
|
+
external: ["bun", "bun:*", ...(source.build?.input?.external ?? [])],
|
|
208
|
+
resolve: {
|
|
209
|
+
conditionNames: [...Bundle.BUN_CONDITION_NAMES],
|
|
210
|
+
...source.build?.input?.resolve,
|
|
211
|
+
},
|
|
212
|
+
plugins: [source.build?.input?.plugins, plugins],
|
|
213
|
+
},
|
|
214
|
+
outputOptions: {
|
|
215
|
+
...source.build?.output,
|
|
216
|
+
format: "esm",
|
|
217
|
+
sourcemap: source.build?.output?.sourcemap ?? false,
|
|
218
|
+
minify: source.build?.output?.minify ?? false,
|
|
219
|
+
entryFileNames: "index.mjs",
|
|
220
|
+
},
|
|
221
|
+
});
|
|
222
|
+
/**
|
|
223
|
+
* Bundle the Effect program behind a `main` source: every emitted file
|
|
224
|
+
* (entry + shared chunks) and the bundle hash. Needs no Docker engine, so
|
|
225
|
+
* builders that are not Docker (`BuildPlan`) share it.
|
|
226
|
+
*/
|
|
227
|
+
export const bundleMainProgram = Effect.fn(function* (options) {
|
|
228
|
+
const { source } = options;
|
|
229
|
+
const virtualEntryPlugin = yield* Bundle.virtualEntryPlugin;
|
|
230
|
+
const realMain = yield* resolveMainPath(source.main);
|
|
231
|
+
const cwd = yield* findCwdForBundle(realMain);
|
|
232
|
+
const buildBundle = Effect.fn(function* (entry, plugins) {
|
|
233
|
+
const opts = mainBundleOptions(source, entry, cwd, plugins);
|
|
234
|
+
return yield* Bundle.build(opts.inputOptions, opts.outputOptions, source.build);
|
|
235
|
+
});
|
|
236
|
+
const bundleOutput = options.isExternal
|
|
237
|
+
? yield* buildBundle(realMain)
|
|
238
|
+
: yield* buildBundle(realMain, virtualEntryPlugin(options.bootstrap));
|
|
239
|
+
// Return every emitted file (entry + shared chunks). Dynamic imports in
|
|
240
|
+
// the Bun HTTP server / AWS SDK split into chunks; dropping any of them
|
|
241
|
+
// crashes the container with `Cannot find module './chunk-XXX.js'`.
|
|
242
|
+
const files = bundleOutput.files.map((file) => ({
|
|
243
|
+
path: file.path,
|
|
244
|
+
content: typeof file.content === "string" ? new TextEncoder().encode(file.content) : file.content,
|
|
245
|
+
}));
|
|
246
|
+
return { files, hash: bundleOutput.hash };
|
|
247
|
+
});
|
|
110
248
|
/**
|
|
111
249
|
* Init-time constructor for the image-source resolver. Resolves the services
|
|
112
250
|
* that are only available at provider-layer construction (Docker, the
|
|
@@ -118,60 +256,6 @@ export const makeContainerImageSource = Effect.gen(function* () {
|
|
|
118
256
|
const docker = yield* Docker;
|
|
119
257
|
const { dotAlchemy } = yield* AlchemyContext;
|
|
120
258
|
const virtualEntryPlugin = yield* Bundle.virtualEntryPlugin;
|
|
121
|
-
/**
|
|
122
|
-
* The exact rolldown input/output options `bundleProgram` hands to
|
|
123
|
-
* `Bundle.build` — shared with {@link watchMain} so a dev watcher's
|
|
124
|
-
* `Bundle.watch` observes the identical module graph.
|
|
125
|
-
*/
|
|
126
|
-
const mainBundleOptions = (source, entry, cwd, plugins) => ({
|
|
127
|
-
inputOptions: {
|
|
128
|
-
...source.build?.input,
|
|
129
|
-
input: entry,
|
|
130
|
-
cwd,
|
|
131
|
-
platform: "node",
|
|
132
|
-
// The container runs on `bun`; keep `bun`/`bun:*` external (the
|
|
133
|
-
// runtime provides them) and resolve the `bun` export condition
|
|
134
|
-
// so `@effect/platform-bun` picks its Bun implementations.
|
|
135
|
-
external: [
|
|
136
|
-
"bun",
|
|
137
|
-
"bun:*",
|
|
138
|
-
...(source.build?.input?.external ?? []),
|
|
139
|
-
],
|
|
140
|
-
resolve: {
|
|
141
|
-
conditionNames: [...Bundle.BUN_CONDITION_NAMES],
|
|
142
|
-
...source.build?.input?.resolve,
|
|
143
|
-
},
|
|
144
|
-
plugins: [source.build?.input?.plugins, plugins],
|
|
145
|
-
},
|
|
146
|
-
outputOptions: {
|
|
147
|
-
...source.build?.output,
|
|
148
|
-
format: "esm",
|
|
149
|
-
sourcemap: source.build?.output?.sourcemap ?? false,
|
|
150
|
-
minify: source.build?.output?.minify ?? false,
|
|
151
|
-
entryFileNames: "index.mjs",
|
|
152
|
-
},
|
|
153
|
-
});
|
|
154
|
-
/** Bundle the Effect program behind a `main` source. */
|
|
155
|
-
const bundleProgram = Effect.fn(function* (options) {
|
|
156
|
-
const { source } = options;
|
|
157
|
-
const realMain = yield* resolveMainPath(source.main);
|
|
158
|
-
const cwd = yield* findCwdForBundle(realMain);
|
|
159
|
-
const buildBundle = Effect.fn(function* (entry, plugins) {
|
|
160
|
-
const opts = mainBundleOptions(source, entry, cwd, plugins);
|
|
161
|
-
return yield* Bundle.build(opts.inputOptions, opts.outputOptions, source.build);
|
|
162
|
-
});
|
|
163
|
-
const bundleOutput = options.isExternal
|
|
164
|
-
? yield* buildBundle(realMain)
|
|
165
|
-
: yield* buildBundle(realMain, virtualEntryPlugin(options.bootstrap));
|
|
166
|
-
// Return every emitted file (entry + shared chunks). Dynamic imports in
|
|
167
|
-
// the Bun HTTP server / AWS SDK split into chunks; dropping any of them
|
|
168
|
-
// crashes the container with `Cannot find module './chunk-XXX.js'`.
|
|
169
|
-
const files = bundleOutput.files.map((file) => ({
|
|
170
|
-
path: file.path,
|
|
171
|
-
content: typeof file.content === "string" ? new TextEncoder().encode(file.content) : file.content,
|
|
172
|
-
}));
|
|
173
|
-
return { files, hash: bundleOutput.hash };
|
|
174
|
-
});
|
|
175
259
|
/**
|
|
176
260
|
* Bundle a `main` source and compute its content-addressed code hash.
|
|
177
261
|
*
|
|
@@ -182,7 +266,7 @@ export const makeContainerImageSource = Effect.gen(function* () {
|
|
|
182
266
|
* pushed image tag always agree.
|
|
183
267
|
*/
|
|
184
268
|
const computeMainCodeHash = Effect.fn(function* (options) {
|
|
185
|
-
const bundled = yield*
|
|
269
|
+
const bundled = yield* bundleMainProgram({
|
|
186
270
|
source: options.source,
|
|
187
271
|
isExternal: options.isExternal,
|
|
188
272
|
bootstrap: options.bootstrap,
|
|
@@ -196,14 +280,12 @@ export const makeContainerImageSource = Effect.gen(function* () {
|
|
|
196
280
|
const isPathEnv = df !== undefined && !isInlineDockerfile(df);
|
|
197
281
|
let envIdentity = {};
|
|
198
282
|
if (isPathEnv) {
|
|
199
|
-
const fs = yield* FileSystem.FileSystem;
|
|
200
283
|
const { context, dockerfile } = yield* resolveContextPaths({
|
|
201
284
|
context: options.source.context,
|
|
202
285
|
dockerfile: df,
|
|
203
286
|
});
|
|
204
287
|
envIdentity = {
|
|
205
|
-
envContextHash: yield*
|
|
206
|
-
envDockerfile: yield* fs.readFileString(dockerfile),
|
|
288
|
+
envContextHash: yield* hashDockerBuildInputs({ context, dockerfile, platform: options.platform }, "effective"),
|
|
207
289
|
};
|
|
208
290
|
}
|
|
209
291
|
const dockerfile = generateDockerfile(options.source, options.port, isPathEnv ? "<env>" : undefined);
|
|
@@ -227,10 +309,11 @@ export const makeContainerImageSource = Effect.gen(function* () {
|
|
|
227
309
|
const preamble = envFrom !== undefined
|
|
228
310
|
? `FROM ${envFrom}`
|
|
229
311
|
: source.dockerfile !== undefined && isInlineDockerfile(source.dockerfile)
|
|
230
|
-
?
|
|
312
|
+
? source.dockerfile.content.trimEnd()
|
|
231
313
|
: `FROM ${source.image ?? "oven/bun:1"}`;
|
|
232
314
|
const lines = [
|
|
233
315
|
preamble,
|
|
316
|
+
...(source.install ?? []),
|
|
234
317
|
`WORKDIR /app`,
|
|
235
318
|
`COPY index.mjs /app/index.mjs`,
|
|
236
319
|
// Copy any additional rolldown chunks (`chunk-XXX.js`,
|
|
@@ -244,6 +327,28 @@ export const makeContainerImageSource = Effect.gen(function* () {
|
|
|
244
327
|
lines.push(`ENTRYPOINT ["bun", "/app/index.mjs"]`);
|
|
245
328
|
return `${lines.join("\n")}\n`;
|
|
246
329
|
};
|
|
330
|
+
/**
|
|
331
|
+
* Bundle an {@link ImageAgent} and compute the content-addressed hash of
|
|
332
|
+
* its image: the bundle, the Dockerfile and the platform. `resolve` and
|
|
333
|
+
* `hash` share this, so the plan-time hash and the pushed tag agree.
|
|
334
|
+
*/
|
|
335
|
+
const bundleAgent = Effect.fn(function* (agent, platform) {
|
|
336
|
+
const bundled = yield* bundleMainProgram({
|
|
337
|
+
source: { main: agent.main },
|
|
338
|
+
isExternal: false,
|
|
339
|
+
bootstrap: agentEntry,
|
|
340
|
+
});
|
|
341
|
+
const hash = (yield* sha256Object({
|
|
342
|
+
bundleHash: bundled.hash,
|
|
343
|
+
dockerfile: AGENT_DOCKERFILE,
|
|
344
|
+
platform,
|
|
345
|
+
})).slice(0, 16);
|
|
346
|
+
return { bundled, hash };
|
|
347
|
+
});
|
|
348
|
+
/** One hash for an image and the agent published beside it. */
|
|
349
|
+
const hashWithAgent = Effect.fn(function* (environment, agent) {
|
|
350
|
+
return (yield* sha256Object({ environment, agent })).slice(0, 16);
|
|
351
|
+
});
|
|
247
352
|
/**
|
|
248
353
|
* Build (or mirror) and push an image to `target`, pushing with the
|
|
249
354
|
* target's credentials or — when it has none — the build machine's own
|
|
@@ -272,16 +377,19 @@ export const makeContainerImageSource = Effect.gen(function* () {
|
|
|
272
377
|
context: options.context,
|
|
273
378
|
file: options.dockerfile,
|
|
274
379
|
platform: options.platform,
|
|
380
|
+
"build-arg": options.build?.args,
|
|
381
|
+
secrets: options.build?.secrets,
|
|
382
|
+
...imageBuildCacheOptions(options.build, options.imageUri, credentials),
|
|
275
383
|
});
|
|
276
384
|
yield* push(options.imageUri, credentials, options.platform);
|
|
277
385
|
return options.imageUri;
|
|
278
386
|
});
|
|
279
387
|
/**
|
|
280
|
-
* Resolve the image
|
|
388
|
+
* Resolve the image of a props bag's own source: resolve the target repository,
|
|
281
389
|
* compute the content-addressed tag, then build/mirror + push only when
|
|
282
390
|
* that exact tag is not already in the registry (crash-safe convergence).
|
|
283
391
|
*/
|
|
284
|
-
const
|
|
392
|
+
const resolveSource = Effect.fnUntraced(function* (options, target) {
|
|
285
393
|
const { id, source, session } = options;
|
|
286
394
|
const platform = options.platform ?? "linux/amd64";
|
|
287
395
|
const kind = imageSourceKind(source);
|
|
@@ -320,11 +428,14 @@ export const makeContainerImageSource = Effect.gen(function* () {
|
|
|
320
428
|
});
|
|
321
429
|
envFrom = `alchemy-env-${id.toLowerCase()}:${codeHash}`;
|
|
322
430
|
yield* session.note(`Building environment image for ${id}...`);
|
|
431
|
+
// The user's Dockerfile holds the expensive steps, so the layer
|
|
432
|
+
// cache applies to this stage rather than the bundle layered on top.
|
|
323
433
|
yield* docker.image.build({
|
|
324
434
|
context: env.context,
|
|
325
435
|
file: env.dockerfile,
|
|
326
436
|
tag: envFrom,
|
|
327
437
|
platform,
|
|
438
|
+
...imageBuildCacheOptions(source.build, imageUri, source.build?.cache ? yield* target.credentials : undefined),
|
|
328
439
|
});
|
|
329
440
|
}
|
|
330
441
|
const finalDockerfile = envFrom === undefined
|
|
@@ -347,6 +458,7 @@ export const makeContainerImageSource = Effect.gen(function* () {
|
|
|
347
458
|
imageUri,
|
|
348
459
|
context: contextDir,
|
|
349
460
|
platform,
|
|
461
|
+
build: envFrom === undefined ? { cache: source.build?.cache } : undefined,
|
|
350
462
|
});
|
|
351
463
|
yield* session.note(`Pushed ${imageUri}`);
|
|
352
464
|
return { imageUri, repositoryUri, codeHash };
|
|
@@ -399,6 +511,7 @@ export const makeContainerImageSource = Effect.gen(function* () {
|
|
|
399
511
|
imageUri,
|
|
400
512
|
context: contextDir,
|
|
401
513
|
platform,
|
|
514
|
+
build: source.build,
|
|
402
515
|
});
|
|
403
516
|
yield* session.note(`Pushed ${imageUri}`);
|
|
404
517
|
return { imageUri, repositoryUri, codeHash };
|
|
@@ -418,10 +531,62 @@ export const makeContainerImageSource = Effect.gen(function* () {
|
|
|
418
531
|
context,
|
|
419
532
|
dockerfile,
|
|
420
533
|
platform,
|
|
534
|
+
build: source.build,
|
|
421
535
|
});
|
|
422
536
|
yield* session.note(`Pushed ${imageUri}`);
|
|
423
537
|
return { imageUri, repositoryUri, codeHash };
|
|
424
538
|
});
|
|
539
|
+
/**
|
|
540
|
+
* Publish an {@link ImageAgent} as an image of its own, `agent-<hash>` in
|
|
541
|
+
* the target repository, unless that tag is already there.
|
|
542
|
+
*/
|
|
543
|
+
const resolveAgent = Effect.fnUntraced(function* (options, target) {
|
|
544
|
+
const { id, platform, session } = options;
|
|
545
|
+
yield* session.note(`Bundling ${id} sandbox agent...`);
|
|
546
|
+
const { bundled, hash } = yield* bundleAgent(options.agent, platform);
|
|
547
|
+
const tag = `agent-${hash}`;
|
|
548
|
+
const imageUri = `${options.repositoryUri}:${tag}`;
|
|
549
|
+
if (yield* target.hasTag(tag)) {
|
|
550
|
+
return { imageUri, hash };
|
|
551
|
+
}
|
|
552
|
+
const contextDir = yield* getStableContextDir(dotAlchemy, dotAlchemy, `${id}-agent`);
|
|
553
|
+
yield* docker.materialize({
|
|
554
|
+
context: contextDir,
|
|
555
|
+
dockerfile: AGENT_DOCKERFILE,
|
|
556
|
+
files: bundled.files.map((file, index) => ({
|
|
557
|
+
path: index === 0 ? "index.mjs" : file.path,
|
|
558
|
+
content: file.content,
|
|
559
|
+
})),
|
|
560
|
+
});
|
|
561
|
+
yield* session.note(`Building sandbox agent image ${imageUri}...`);
|
|
562
|
+
yield* buildAndPush(target, { imageUri, context: contextDir, platform });
|
|
563
|
+
yield* session.note(`Pushed ${imageUri}`);
|
|
564
|
+
return { imageUri, hash };
|
|
565
|
+
});
|
|
566
|
+
/**
|
|
567
|
+
* Resolve the image for a props bag, and the {@link ImageAgent} published
|
|
568
|
+
* beside it when one is asked for. The image is the user's own, unchanged;
|
|
569
|
+
* `codeHash` then covers both images.
|
|
570
|
+
*/
|
|
571
|
+
const resolve = Effect.fnUntraced(function* (options, target) {
|
|
572
|
+
const image = yield* resolveSource(options, target);
|
|
573
|
+
if (options.agent === undefined || imageSourceKind(options.source) === "main") {
|
|
574
|
+
return { ...image, agent: undefined };
|
|
575
|
+
}
|
|
576
|
+
const published = yield* resolveAgent({
|
|
577
|
+
id: options.id,
|
|
578
|
+
agent: options.agent,
|
|
579
|
+
platform: options.platform ?? "linux/amd64",
|
|
580
|
+
repositoryUri: image.repositoryUri,
|
|
581
|
+
session: options.session,
|
|
582
|
+
}, target);
|
|
583
|
+
return {
|
|
584
|
+
imageUri: image.imageUri,
|
|
585
|
+
repositoryUri: image.repositoryUri,
|
|
586
|
+
codeHash: yield* hashWithAgent(image.codeHash, published.hash),
|
|
587
|
+
agent: { imageUri: published.imageUri },
|
|
588
|
+
};
|
|
589
|
+
});
|
|
425
590
|
/**
|
|
426
591
|
* Content hash for ANY source kind without building or pushing an image.
|
|
427
592
|
*
|
|
@@ -434,7 +599,17 @@ export const makeContainerImageSource = Effect.gen(function* () {
|
|
|
434
599
|
*/
|
|
435
600
|
const hash = Effect.fn(function* (options) {
|
|
436
601
|
const platform = options.platform ?? "linux/amd64";
|
|
437
|
-
|
|
602
|
+
const kind = imageSourceKind(options.source);
|
|
603
|
+
if (options.agent !== undefined && kind !== undefined && kind !== "main") {
|
|
604
|
+
// The image and its agent are two images. One hash covers both, so a
|
|
605
|
+
// new agent plans an update just as a new image does.
|
|
606
|
+
const environment = yield* computeStaticSourceHash(options.source, platform);
|
|
607
|
+
if (environment === undefined)
|
|
608
|
+
return undefined;
|
|
609
|
+
const agent = yield* bundleAgent(options.agent, platform);
|
|
610
|
+
return yield* hashWithAgent(environment, agent.hash);
|
|
611
|
+
}
|
|
612
|
+
if (kind === "main") {
|
|
438
613
|
// Unresolved inline environment content (an Output) can't be hashed
|
|
439
614
|
// at plan time — return undefined so the diff defers to reconcile.
|
|
440
615
|
const df = options.source.dockerfile;
|
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","sources":["../src/ImageSource.ts"],"names":[],"mappings":"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"}
|