@alchemy.run/docker 0.0.0 → 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/LICENSE +201 -0
- package/README.md +46 -4
- package/lib/Bootstrap.d.ts +7 -0
- package/lib/Bootstrap.d.ts.map +1 -0
- package/lib/Bootstrap.js +25 -0
- package/lib/Bootstrap.js.map +1 -0
- package/lib/BuildHash.d.ts +56 -0
- package/lib/BuildHash.d.ts.map +1 -0
- package/lib/BuildHash.js +172 -0
- package/lib/BuildHash.js.map +1 -0
- package/lib/Container.d.ts +450 -0
- package/lib/Container.d.ts.map +1 -0
- package/lib/Container.js +745 -0
- package/lib/Container.js.map +1 -0
- package/lib/Context.d.ts +86 -0
- package/lib/Context.d.ts.map +1 -0
- package/lib/Context.js +146 -0
- package/lib/Context.js.map +1 -0
- package/lib/Docker.d.ts +527 -0
- package/lib/Docker.d.ts.map +1 -0
- package/lib/Docker.js +437 -0
- package/lib/Docker.js.map +1 -0
- package/lib/Dockerfile.d.ts +72 -0
- package/lib/Dockerfile.d.ts.map +1 -0
- package/lib/Dockerfile.js +12 -0
- package/lib/Dockerfile.js.map +1 -0
- package/lib/HealthcheckCommand.d.ts +17 -0
- package/lib/HealthcheckCommand.d.ts.map +1 -0
- package/lib/HealthcheckCommand.js +33 -0
- package/lib/HealthcheckCommand.js.map +1 -0
- package/lib/Image.d.ts +179 -0
- package/lib/Image.d.ts.map +1 -0
- package/lib/Image.js +210 -0
- package/lib/Image.js.map +1 -0
- package/lib/ImageSource.d.ts +288 -0
- package/lib/ImageSource.d.ts.map +1 -0
- package/lib/ImageSource.js +498 -0
- package/lib/ImageSource.js.map +1 -0
- package/lib/Network.d.ts +70 -0
- package/lib/Network.d.ts.map +1 -0
- package/lib/Network.js +111 -0
- package/lib/Network.js.map +1 -0
- package/lib/Providers.d.ts +21 -0
- package/lib/Providers.d.ts.map +1 -0
- package/lib/Providers.js +26 -0
- package/lib/Providers.js.map +1 -0
- package/lib/Registry.d.ts +47 -0
- package/lib/Registry.d.ts.map +1 -0
- package/lib/Registry.js +67 -0
- package/lib/Registry.js.map +1 -0
- package/lib/RegistryError.d.ts +21 -0
- package/lib/RegistryError.d.ts.map +1 -0
- package/lib/RegistryError.js +28 -0
- package/lib/RegistryError.js.map +1 -0
- package/lib/RemoteImage.d.ts +118 -0
- package/lib/RemoteImage.d.ts.map +1 -0
- package/lib/RemoteImage.js +164 -0
- package/lib/RemoteImage.js.map +1 -0
- package/lib/Service.d.ts +499 -0
- package/lib/Service.d.ts.map +1 -0
- package/lib/Service.js +730 -0
- package/lib/Service.js.map +1 -0
- package/lib/ServiceImage.d.ts +78 -0
- package/lib/ServiceImage.d.ts.map +1 -0
- package/lib/ServiceImage.js +162 -0
- package/lib/ServiceImage.js.map +1 -0
- package/lib/Swarm.d.ts +119 -0
- package/lib/Swarm.d.ts.map +1 -0
- package/lib/Swarm.js +148 -0
- package/lib/Swarm.js.map +1 -0
- package/lib/Volume.d.ts +94 -0
- package/lib/Volume.d.ts.map +1 -0
- package/lib/Volume.js +133 -0
- package/lib/Volume.js.map +1 -0
- package/lib/index.d.ts +14 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +13 -0
- package/lib/index.js.map +1 -0
- package/package.json +58 -3
- package/src/Bootstrap.ts +51 -0
- package/src/BuildHash.ts +265 -0
- package/src/Container.ts +1118 -0
- package/src/Context.ts +215 -0
- package/src/Docker.ts +1173 -0
- package/src/Dockerfile.ts +81 -0
- package/src/HealthcheckCommand.ts +35 -0
- package/src/Image.ts +322 -0
- package/src/ImageSource.ts +842 -0
- package/src/Network.ts +169 -0
- package/src/Providers.ts +46 -0
- package/src/Registry.ts +91 -0
- package/src/RegistryError.ts +48 -0
- package/src/RemoteImage.ts +255 -0
- package/src/Service.ts +1264 -0
- package/src/ServiceImage.ts +252 -0
- package/src/Swarm.ts +221 -0
- package/src/Volume.ts +193 -0
- package/src/index.ts +17 -0
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
import { AlchemyContext } from "alchemy/AlchemyContext";
|
|
2
|
+
import * as Bundle from "alchemy/Bundle/Bundle";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as FileSystem from "effect/FileSystem";
|
|
5
|
+
import * as Path from "effect/Path";
|
|
6
|
+
import type * as Redacted from "effect/Redacted";
|
|
7
|
+
import type * as rolldown from "rolldown";
|
|
8
|
+
import { Docker, type RegistryCredentials } from "./Docker.ts";
|
|
9
|
+
import { type InlineDockerfile } from "./Dockerfile.ts";
|
|
10
|
+
/**
|
|
11
|
+
* INTERNAL — registry-agnostic container image-source machinery shared by
|
|
12
|
+
* the container platforms (`AWS.ECS.*`, `AWS.EKS.*` via ECR, and
|
|
13
|
+
* `Kubernetes.*` workloads pushing to any registry).
|
|
14
|
+
*
|
|
15
|
+
* NOT exported from any barrel. Consumers import the module path directly.
|
|
16
|
+
*
|
|
17
|
+
* A platform's props separate the ENVIRONMENT (what the container is) from
|
|
18
|
+
* the PROGRAM (`main` — "and run my bundled Effect program in it"):
|
|
19
|
+
*
|
|
20
|
+
* - environment (at most one): `image` (registry ref) | `context` +
|
|
21
|
+
* `dockerfile`-as-path (docker build) | inline `dockerfile` content
|
|
22
|
+
* (`Dockerfile.inline`) | the default bun base when `main` stands alone.
|
|
23
|
+
* - `main` present → the bundle is injected into the environment (COPY +
|
|
24
|
+
* ENTRYPOINT) and pushed as a derived image. `main` absent → the
|
|
25
|
+
* environment runs verbatim: `image` is mirrored (docker pull → tag →
|
|
26
|
+
* push, content-addressed on the ref), a Dockerfile builds as-is.
|
|
27
|
+
*
|
|
28
|
+
* Where images land is an {@link ImageRegistryTarget}: ECR supplies one that
|
|
29
|
+
* auto-creates a private repository; a plain registry (a local `registry`
|
|
30
|
+
* container, GHCR, Docker Hub, …) supplies one that pushes to
|
|
31
|
+
* `<server>/<name>`.
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Bundle an Effect program into a generated image. Alchemy bundles `main`
|
|
35
|
+
* with rolldown and bakes it into a Dockerfile generated from the
|
|
36
|
+
* environment (`image`, `dockerfile`, or the default bun base).
|
|
37
|
+
*/
|
|
38
|
+
export interface BundledImageSource {
|
|
39
|
+
/**
|
|
40
|
+
* Module entrypoint for the bundled program. This should typically be
|
|
41
|
+
* `import.meta.url` from an inline Effect program.
|
|
42
|
+
*/
|
|
43
|
+
main: string;
|
|
44
|
+
/**
|
|
45
|
+
* Environment image: used as the generated Dockerfile's `FROM`. Any
|
|
46
|
+
* registry ref works (private non-ECR registries require docker
|
|
47
|
+
* credentials on the build machine); the image must be able to run the
|
|
48
|
+
* bun runtime. Exclusive with {@link dockerfile} / {@link context}.
|
|
49
|
+
* @default "oven/bun:1"
|
|
50
|
+
*/
|
|
51
|
+
image?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Environment Dockerfile: a string is a PATH (built in {@link context},
|
|
54
|
+
* then the bundle is layered on top in a second stage); an
|
|
55
|
+
* {@link InlineDockerfile} is inline content used as the environment
|
|
56
|
+
* preamble (built with no context — its own `COPY`s are unsupported).
|
|
57
|
+
* The resulting environment must be able to run the bun runtime.
|
|
58
|
+
* Exclusive with {@link image}.
|
|
59
|
+
*/
|
|
60
|
+
dockerfile?: string | InlineDockerfile;
|
|
61
|
+
/**
|
|
62
|
+
* Build context for a path {@link dockerfile} environment. Exclusive
|
|
63
|
+
* with {@link image} and inline dockerfiles.
|
|
64
|
+
*/
|
|
65
|
+
context?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Named export to load from `main`.
|
|
68
|
+
* @default "default"
|
|
69
|
+
*/
|
|
70
|
+
handler?: string;
|
|
71
|
+
/**
|
|
72
|
+
* Bundler configuration for the entrypoint. Unused code is tree-shaken.
|
|
73
|
+
* `effect`, alchemy, and `@distilled.cloud` are marked pure so unused
|
|
74
|
+
* parts prune more aggressively. List extra packages with
|
|
75
|
+
* `pure.packages`, or disable with `pure: false`.
|
|
76
|
+
*/
|
|
77
|
+
build?: Bundle.BundleConfig;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Build arguments and BuildKit secrets for an image built from the user's
|
|
81
|
+
* own Dockerfile (`context` / `dockerfile`).
|
|
82
|
+
*/
|
|
83
|
+
export interface DockerfileBuild {
|
|
84
|
+
/**
|
|
85
|
+
* Docker build arguments (`--build-arg`), read by `ARG` instructions.
|
|
86
|
+
* They are part of the image's content hash, so changing one rebuilds the
|
|
87
|
+
* image. Never pass secrets here: build args are visible in the image
|
|
88
|
+
* history. Use {@link secrets} instead.
|
|
89
|
+
*/
|
|
90
|
+
args?: Record<string, string>;
|
|
91
|
+
/**
|
|
92
|
+
* BuildKit secrets, keyed by id. Mount one in a `RUN` step with
|
|
93
|
+
* `--mount=type=secret,id=<id>` and read it from `/run/secrets/<id>`, or
|
|
94
|
+
* add `env=<NAME>` to expose it as an environment variable for that step.
|
|
95
|
+
*
|
|
96
|
+
* A secret never enters the image, its build history, or `docker`'s argv.
|
|
97
|
+
* Secrets are left out of the image's content hash, so rotating one does
|
|
98
|
+
* not rebuild the image.
|
|
99
|
+
*/
|
|
100
|
+
secrets?: Record<string, Redacted.Redacted<string>>;
|
|
101
|
+
}
|
|
102
|
+
/** The `build` prop of a source built from the user's own Dockerfile. */
|
|
103
|
+
export interface DockerfileBuildOptions {
|
|
104
|
+
/** Build arguments and BuildKit secrets for the Dockerfile build. */
|
|
105
|
+
build?: DockerfileBuild;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Build the image from the user's own Dockerfile and build context — no
|
|
109
|
+
* Effect program is bundled.
|
|
110
|
+
*/
|
|
111
|
+
export interface DockerfileImageSource extends DockerfileBuildOptions {
|
|
112
|
+
/**
|
|
113
|
+
* Docker build context directory. Optional when {@link dockerfile} is
|
|
114
|
+
* inline content (which builds with an empty context).
|
|
115
|
+
*/
|
|
116
|
+
context?: string;
|
|
117
|
+
/**
|
|
118
|
+
* Path to the Dockerfile relative to the cwd (NOT the context), or
|
|
119
|
+
* {@link InlineDockerfile} content. The Dockerfile must define its own
|
|
120
|
+
* `CMD`/`ENTRYPOINT` (no program is injected).
|
|
121
|
+
* @default `${context}/Dockerfile`
|
|
122
|
+
*/
|
|
123
|
+
dockerfile?: string | InlineDockerfile;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Run a pre-built registry image. Registry-backed platforms may mirror it
|
|
127
|
+
* into their own registry (ECR: docker pull → tag → push).
|
|
128
|
+
*/
|
|
129
|
+
export interface RegistryImageSource {
|
|
130
|
+
/**
|
|
131
|
+
* A pre-built image reference, e.g.
|
|
132
|
+
* `public.ecr.aws/docker/library/busybox:stable`.
|
|
133
|
+
*/
|
|
134
|
+
image: string;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* The image-source union. Discriminated by presence: exactly one of
|
|
138
|
+
* `main`, `context`, or `image`.
|
|
139
|
+
*/
|
|
140
|
+
export type ImageSourceProps = BundledImageSource | DockerfileImageSource | RegistryImageSource;
|
|
141
|
+
/** Loose bag shape used to sniff which source variant a props object is. */
|
|
142
|
+
export interface ImageSourceLike {
|
|
143
|
+
main?: string;
|
|
144
|
+
handler?: string;
|
|
145
|
+
/** Bundler config for `main`; Docker build args and secrets for `context`. */
|
|
146
|
+
build?: Bundle.BundleConfig & DockerfileBuild;
|
|
147
|
+
context?: string;
|
|
148
|
+
dockerfile?: string | InlineDockerfile;
|
|
149
|
+
image?: string;
|
|
150
|
+
}
|
|
151
|
+
export type ImageSourceKind = "main" | "context" | "image";
|
|
152
|
+
/**
|
|
153
|
+
* Which image source a props bag declares. `main` always wins (the other
|
|
154
|
+
* fields then describe its ENVIRONMENT); without `main`, `image` is the
|
|
155
|
+
* mirrored-verbatim source and any `context`/`dockerfile` (path or inline)
|
|
156
|
+
* is an external docker build.
|
|
157
|
+
*/
|
|
158
|
+
export declare const imageSourceKind: (source: ImageSourceLike) => ImageSourceKind | undefined;
|
|
159
|
+
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 & {
|
|
160
|
+
readonly _tag: "DockerfileBuildConflict";
|
|
161
|
+
} & Readonly<A>;
|
|
162
|
+
/**
|
|
163
|
+
* `build.args` or `build.secrets` set on an image that is not built from the
|
|
164
|
+
* user's own Dockerfile: a `main` program or a pre-built `image`.
|
|
165
|
+
*/
|
|
166
|
+
export declare class DockerfileBuildConflict extends DockerfileBuildConflict_base<{
|
|
167
|
+
readonly id: string;
|
|
168
|
+
readonly source: "main" | "image";
|
|
169
|
+
}> {
|
|
170
|
+
get message(): string;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Dies with {@link DockerfileBuildConflict} when `build.args` or
|
|
174
|
+
* `build.secrets` are set alongside `main` or `image`.
|
|
175
|
+
*/
|
|
176
|
+
export declare const validateDockerfileBuild: (id: string, source: {
|
|
177
|
+
main?: string;
|
|
178
|
+
image?: string;
|
|
179
|
+
build?: DockerfileBuild;
|
|
180
|
+
}) => Effect.Effect<void>;
|
|
181
|
+
/**
|
|
182
|
+
* Validate environment-source exclusivity. Dies (plan-time defect) on
|
|
183
|
+
* `image`+`dockerfile`, `image`+`context`, inline-`dockerfile`+`context`, or
|
|
184
|
+
* build args/secrets without a Dockerfile build.
|
|
185
|
+
*/
|
|
186
|
+
export declare const validateImageSource: (id: string, source: ImageSourceLike) => Effect.Effect<void>;
|
|
187
|
+
/**
|
|
188
|
+
* Where a resolved image is pushed. Each field is an Effect so a target can
|
|
189
|
+
* create resources lazily (ECR creates the repository on first use).
|
|
190
|
+
*/
|
|
191
|
+
export interface ImageRegistryTarget<R = never> {
|
|
192
|
+
/** The repository URI images are tagged into (`<repositoryUri>:<hash>`). */
|
|
193
|
+
readonly repositoryUri: Effect.Effect<string, any, R>;
|
|
194
|
+
/**
|
|
195
|
+
* Whether the content-addressed tag is already in the registry. `true`
|
|
196
|
+
* skips the build and push entirely.
|
|
197
|
+
*/
|
|
198
|
+
readonly hasTag: (tag: string) => Effect.Effect<boolean, any, R>;
|
|
199
|
+
/**
|
|
200
|
+
* Push credentials. `undefined` pushes with the build machine's own
|
|
201
|
+
* Docker configuration (`docker login`, credential helpers).
|
|
202
|
+
*/
|
|
203
|
+
readonly credentials: Effect.Effect<RegistryCredentials | undefined, any, R>;
|
|
204
|
+
}
|
|
205
|
+
export interface ResolveContainerImageOptions {
|
|
206
|
+
/** Logical resource id — keys the stable build-context directory. */
|
|
207
|
+
id: string;
|
|
208
|
+
/**
|
|
209
|
+
* The props bag carrying the image source fields (`main` / `context` /
|
|
210
|
+
* `image` plus their modifiers).
|
|
211
|
+
*/
|
|
212
|
+
source: ImageSourceLike;
|
|
213
|
+
/**
|
|
214
|
+
* Target image platform.
|
|
215
|
+
* @default "linux/amd64"
|
|
216
|
+
*/
|
|
217
|
+
platform?: string;
|
|
218
|
+
/**
|
|
219
|
+
* Port the generated Dockerfile should `ENV PORT=` + `EXPOSE`
|
|
220
|
+
* (`main` source only).
|
|
221
|
+
*/
|
|
222
|
+
port?: number;
|
|
223
|
+
/**
|
|
224
|
+
* True when the resource was declared without an inline Effect impl —
|
|
225
|
+
* `main` is then bundled as-is without the virtual-entry bootstrap.
|
|
226
|
+
*/
|
|
227
|
+
isExternal?: boolean;
|
|
228
|
+
/**
|
|
229
|
+
* The virtual-entry bootstrap wrapped around `main` for Effect-native
|
|
230
|
+
* programs: receives the resolved entry import path and returns the
|
|
231
|
+
* generated entry module source.
|
|
232
|
+
*/
|
|
233
|
+
bootstrap: (importPath: string) => string;
|
|
234
|
+
/** Plan-status session used to emit build/push progress notes. */
|
|
235
|
+
session: {
|
|
236
|
+
note: (message: string) => Effect.Effect<void>;
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Content hash for the sources whose identity is computable WITHOUT running
|
|
241
|
+
* a bundler:
|
|
242
|
+
*
|
|
243
|
+
* - `context` — hash of the build-context directory + Dockerfile content +
|
|
244
|
+
* platform.
|
|
245
|
+
* - `image` — hash of the image reference + platform (re-mirror only when
|
|
246
|
+
* the ref changes).
|
|
247
|
+
* - `main` — `undefined`: the hash comes from the bundle output, so it is
|
|
248
|
+
* only known inside `resolve`.
|
|
249
|
+
*
|
|
250
|
+
* Providers use this in `diff` to surface content drift (files changed under
|
|
251
|
+
* an unchanged `context` path) as an update.
|
|
252
|
+
*/
|
|
253
|
+
export declare const computeStaticSourceHash: (source: ImageSourceLike, platform?: string | undefined) => Effect.Effect<string | undefined, import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path>;
|
|
254
|
+
/**
|
|
255
|
+
* Init-time constructor for the image-source resolver. Resolves the services
|
|
256
|
+
* that are only available at provider-layer construction (Docker, the
|
|
257
|
+
* `.alchemy` directory, the rolldown virtual-entry plugin) and returns
|
|
258
|
+
* `resolve` (build/mirror + push to an {@link ImageRegistryTarget}), `hash`,
|
|
259
|
+
* and `watchMain`.
|
|
260
|
+
*/
|
|
261
|
+
export declare const makeContainerImageSource: Effect.Effect<{
|
|
262
|
+
resolve: <R>(options: ResolveContainerImageOptions, target: ImageRegistryTarget<R>) => Effect.Effect<{
|
|
263
|
+
imageUri: string;
|
|
264
|
+
repositoryUri: string;
|
|
265
|
+
codeHash: string;
|
|
266
|
+
}, any, R | FileSystem.FileSystem | Path.Path | import("alchemy/Stack").Stack | import("alchemy/Stage").Stage>;
|
|
267
|
+
hash: (options: {
|
|
268
|
+
source: ImageSourceLike;
|
|
269
|
+
platform?: string;
|
|
270
|
+
port?: number;
|
|
271
|
+
isExternal?: boolean;
|
|
272
|
+
bootstrap: (importPath: string) => string;
|
|
273
|
+
}) => Effect.Effect<string | undefined, Bundle.BundleError | import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path>;
|
|
274
|
+
watchMain: (options: {
|
|
275
|
+
source: BundledImageSource;
|
|
276
|
+
isExternal?: boolean;
|
|
277
|
+
bootstrap: (importPath: string) => string;
|
|
278
|
+
}) => Effect.Effect<{
|
|
279
|
+
inputOptions: rolldown.InputOptions;
|
|
280
|
+
outputOptions: rolldown.OutputOptions;
|
|
281
|
+
extra: Bundle.BundleConfig | undefined;
|
|
282
|
+
}, import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path>;
|
|
283
|
+
}, never, AlchemyContext | Docker | Path.Path>;
|
|
284
|
+
/** The resolver service returned by {@link makeContainerImageSource}. */
|
|
285
|
+
export interface ContainerImageSource extends Effect.Success<typeof makeContainerImageSource> {
|
|
286
|
+
}
|
|
287
|
+
export {};
|
|
288
|
+
//# sourceMappingURL=ImageSource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageSource.d.ts","sourceRoot":"","sources":["../src/ImageSource.ts"],"names":[],"mappings":"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"}
|