@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
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Docker's word processing (BuildKit `frontend/dockerfile/shell/lex.go`),
|
|
3
|
+
* without an environment: quotes and escapes are resolved and every variable
|
|
4
|
+
* reference is kept as written (`$NAME`, `${NAME:-default}`), as BuildKit
|
|
5
|
+
* does with `SkipUnsetEnv`. Expanding variables is left to the builder.
|
|
6
|
+
*/
|
|
7
|
+
import * as Result from "effect/Result";
|
|
8
|
+
declare const ShellWordError_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 & {
|
|
9
|
+
readonly _tag: "ShellWordError";
|
|
10
|
+
} & Readonly<A>;
|
|
11
|
+
/** A word Docker cannot process: an unterminated quote or a bad `${…}`. */
|
|
12
|
+
export declare class ShellWordError extends ShellWordError_base<{
|
|
13
|
+
readonly message: string;
|
|
14
|
+
}> {
|
|
15
|
+
}
|
|
16
|
+
export interface ShellWordOptions {
|
|
17
|
+
readonly escape: string;
|
|
18
|
+
/** Keep quote characters in the result. */
|
|
19
|
+
readonly rawQuotes?: boolean;
|
|
20
|
+
/** Keep escape characters in the result. */
|
|
21
|
+
readonly rawEscapes?: boolean;
|
|
22
|
+
}
|
|
23
|
+
/** The word with quotes and escapes resolved. */
|
|
24
|
+
export declare const processWord: (word: string, options: ShellWordOptions) => Result.Result<string, ShellWordError>;
|
|
25
|
+
/** The input split into words, as a shell would. */
|
|
26
|
+
export declare const processWords: (input: string, options: ShellWordOptions) => Result.Result<string[], ShellWordError>;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=ShellWord.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShellWord.d.ts","sources":["../src/ShellWord.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;;;;AAExC,2EAA2E;AAC3E,qBAAa,cAAe,SAAQ,oBAAmC;IACrE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;CAAG;AAEL,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AA0SD,iDAAiD;AACjD,eAAO,MAAM,WAAW,SAAU,MAAM,WAAW,gBAAgB,0CAC1B,CAAC;AAE1C,oDAAoD;AACpD,eAAO,MAAM,YAAY,UAAW,MAAM,WAAW,gBAAgB,4CAC5B,CAAC"}
|
package/lib/ShellWord.js
ADDED
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Docker's word processing (BuildKit `frontend/dockerfile/shell/lex.go`),
|
|
3
|
+
* without an environment: quotes and escapes are resolved and every variable
|
|
4
|
+
* reference is kept as written (`$NAME`, `${NAME:-default}`), as BuildKit
|
|
5
|
+
* does with `SkipUnsetEnv`. Expanding variables is left to the builder.
|
|
6
|
+
*/
|
|
7
|
+
import * as Data from "effect/Data";
|
|
8
|
+
import * as Result from "effect/Result";
|
|
9
|
+
/** A word Docker cannot process: an unterminated quote or a bad `${…}`. */
|
|
10
|
+
export class ShellWordError extends Data.TaggedError("ShellWordError") {
|
|
11
|
+
}
|
|
12
|
+
const EOF = undefined;
|
|
13
|
+
const isSpace = (ch) => /\s/u.test(ch);
|
|
14
|
+
const isLetter = (ch) => /\p{L}/u.test(ch);
|
|
15
|
+
const isDigit = (ch) => /\p{Nd}/u.test(ch);
|
|
16
|
+
const isSpecialParam = (ch) => "@*#?-$!0".includes(ch);
|
|
17
|
+
const isWhitespace = (ch) => ch === "\t" || ch === "\r" || ch === " ";
|
|
18
|
+
class Words {
|
|
19
|
+
shared;
|
|
20
|
+
inWord = false;
|
|
21
|
+
constructor(shared) {
|
|
22
|
+
this.shared = shared;
|
|
23
|
+
}
|
|
24
|
+
get buf() {
|
|
25
|
+
return this.shared.value;
|
|
26
|
+
}
|
|
27
|
+
set buf(value) {
|
|
28
|
+
this.shared.value = value;
|
|
29
|
+
}
|
|
30
|
+
words = [];
|
|
31
|
+
addChar(ch) {
|
|
32
|
+
if (isSpace(ch) && this.inWord) {
|
|
33
|
+
if (this.buf.length !== 0) {
|
|
34
|
+
this.words.push(this.buf);
|
|
35
|
+
this.buf = "";
|
|
36
|
+
this.inWord = false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else if (!isSpace(ch)) {
|
|
40
|
+
this.addRawChar(ch);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
addRawChar(ch) {
|
|
44
|
+
this.buf += ch;
|
|
45
|
+
this.inWord = true;
|
|
46
|
+
}
|
|
47
|
+
addString(str) {
|
|
48
|
+
for (const ch of str)
|
|
49
|
+
this.addChar(ch);
|
|
50
|
+
}
|
|
51
|
+
addRawString(str) {
|
|
52
|
+
this.buf += str;
|
|
53
|
+
this.inWord = true;
|
|
54
|
+
}
|
|
55
|
+
get() {
|
|
56
|
+
if (this.buf.length > 0) {
|
|
57
|
+
this.words.push(this.buf);
|
|
58
|
+
this.buf = "";
|
|
59
|
+
this.inWord = false;
|
|
60
|
+
}
|
|
61
|
+
return this.words;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
class Lexer {
|
|
65
|
+
options;
|
|
66
|
+
chars;
|
|
67
|
+
pos = 0;
|
|
68
|
+
rawEscapes;
|
|
69
|
+
wordBuffer = { value: "" };
|
|
70
|
+
/** The first error. Failing also ends the input, so every loop stops. */
|
|
71
|
+
error;
|
|
72
|
+
constructor(input, options) {
|
|
73
|
+
this.options = options;
|
|
74
|
+
this.chars = Array.from(input);
|
|
75
|
+
this.rawEscapes = options.rawEscapes ?? false;
|
|
76
|
+
}
|
|
77
|
+
peek() {
|
|
78
|
+
return this.chars[this.pos];
|
|
79
|
+
}
|
|
80
|
+
next() {
|
|
81
|
+
return this.chars[this.pos++];
|
|
82
|
+
}
|
|
83
|
+
fail(message) {
|
|
84
|
+
this.error ??= new ShellWordError({ message });
|
|
85
|
+
this.pos = this.chars.length;
|
|
86
|
+
return "";
|
|
87
|
+
}
|
|
88
|
+
process() {
|
|
89
|
+
return this.processStopOn(EOF, this.rawEscapes, false);
|
|
90
|
+
}
|
|
91
|
+
processStopOn(stop, rawEscapes, preservePatternEscapes) {
|
|
92
|
+
let result = "";
|
|
93
|
+
this.wordBuffer.value = "";
|
|
94
|
+
const words = new Words(this.wordBuffer);
|
|
95
|
+
const saved = this.rawEscapes;
|
|
96
|
+
this.rawEscapes = rawEscapes;
|
|
97
|
+
while (this.peek() !== EOF) {
|
|
98
|
+
const ch = this.peek();
|
|
99
|
+
if (stop !== EOF && ch === stop) {
|
|
100
|
+
this.next();
|
|
101
|
+
this.rawEscapes = saved;
|
|
102
|
+
return { result, words: words.get() };
|
|
103
|
+
}
|
|
104
|
+
if (ch === "$") {
|
|
105
|
+
const tmp = this.processDollar();
|
|
106
|
+
result += tmp;
|
|
107
|
+
words.addString(tmp);
|
|
108
|
+
}
|
|
109
|
+
else if (ch === "<") {
|
|
110
|
+
const tmp = this.processPossibleHeredoc();
|
|
111
|
+
result += tmp;
|
|
112
|
+
words.addRawString(tmp);
|
|
113
|
+
}
|
|
114
|
+
else if (ch === "'") {
|
|
115
|
+
const tmp = this.processSingleQuote(preservePatternEscapes);
|
|
116
|
+
result += tmp;
|
|
117
|
+
words.addRawString(tmp);
|
|
118
|
+
}
|
|
119
|
+
else if (ch === '"') {
|
|
120
|
+
const tmp = this.processDoubleQuote(preservePatternEscapes);
|
|
121
|
+
result += tmp;
|
|
122
|
+
words.addRawString(tmp);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
let c = this.next();
|
|
126
|
+
if (c === this.options.escape) {
|
|
127
|
+
if (this.rawEscapes) {
|
|
128
|
+
words.addRawChar(c);
|
|
129
|
+
result += c;
|
|
130
|
+
}
|
|
131
|
+
const escaped = this.next();
|
|
132
|
+
if (escaped === EOF)
|
|
133
|
+
break;
|
|
134
|
+
c = escaped;
|
|
135
|
+
words.addRawChar(c);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
words.addChar(c);
|
|
139
|
+
}
|
|
140
|
+
result += c;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
this.rawEscapes = saved;
|
|
144
|
+
if (stop !== EOF) {
|
|
145
|
+
this.fail(`unexpected end of statement while looking for matching ${stop}`);
|
|
146
|
+
}
|
|
147
|
+
return { result, words: words.get() };
|
|
148
|
+
}
|
|
149
|
+
processSingleQuote(preservePatternEscapes) {
|
|
150
|
+
let result = "";
|
|
151
|
+
const open = this.next();
|
|
152
|
+
if (this.options.rawQuotes)
|
|
153
|
+
result += open;
|
|
154
|
+
for (;;) {
|
|
155
|
+
const ch = this.next();
|
|
156
|
+
if (ch === EOF) {
|
|
157
|
+
return this.fail("unexpected end of statement while looking for matching single-quote");
|
|
158
|
+
}
|
|
159
|
+
if (ch === "'") {
|
|
160
|
+
if (this.options.rawQuotes)
|
|
161
|
+
result += ch;
|
|
162
|
+
return result;
|
|
163
|
+
}
|
|
164
|
+
if (preservePatternEscapes && ch === this.options.escape)
|
|
165
|
+
result += ch;
|
|
166
|
+
result += ch;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
processDoubleQuote(preservePatternEscapes) {
|
|
170
|
+
let result = "";
|
|
171
|
+
const open = this.next();
|
|
172
|
+
if (this.options.rawQuotes)
|
|
173
|
+
result += open;
|
|
174
|
+
for (;;) {
|
|
175
|
+
const peeked = this.peek();
|
|
176
|
+
if (peeked === EOF) {
|
|
177
|
+
return this.fail("unexpected end of statement while looking for matching double-quote");
|
|
178
|
+
}
|
|
179
|
+
if (peeked === '"') {
|
|
180
|
+
const close = this.next();
|
|
181
|
+
if (this.options.rawQuotes)
|
|
182
|
+
result += close;
|
|
183
|
+
return result;
|
|
184
|
+
}
|
|
185
|
+
if (peeked === "$") {
|
|
186
|
+
result += this.processDollar();
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
let ch = this.next();
|
|
190
|
+
if (ch === this.options.escape) {
|
|
191
|
+
const after = this.peek();
|
|
192
|
+
if (after === EOF)
|
|
193
|
+
continue;
|
|
194
|
+
if (after === '"' || after === "$" || after === this.options.escape) {
|
|
195
|
+
if (this.rawEscapes)
|
|
196
|
+
result += ch;
|
|
197
|
+
ch = this.next();
|
|
198
|
+
}
|
|
199
|
+
else if (this.rawEscapes && (!this.options.rawQuotes || preservePatternEscapes)) {
|
|
200
|
+
result += ch;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
result += ch;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
processDollar() {
|
|
207
|
+
this.next();
|
|
208
|
+
if (this.peek() !== "{") {
|
|
209
|
+
const name = this.processName();
|
|
210
|
+
return name === "" ? "$" : `$${name}`;
|
|
211
|
+
}
|
|
212
|
+
this.next();
|
|
213
|
+
const first = this.peek();
|
|
214
|
+
if (first === EOF)
|
|
215
|
+
return this.fail("syntax error: missing '}'");
|
|
216
|
+
if (first === "{" || first === "}" || first === ":") {
|
|
217
|
+
return this.fail("syntax error: bad substitution");
|
|
218
|
+
}
|
|
219
|
+
const name = this.processName();
|
|
220
|
+
let ch = this.next();
|
|
221
|
+
let chs = ch ?? "\uFFFD";
|
|
222
|
+
let nullIsUnset = false;
|
|
223
|
+
switch (ch) {
|
|
224
|
+
case "}":
|
|
225
|
+
return `\${${name}}`;
|
|
226
|
+
case ":":
|
|
227
|
+
case "+":
|
|
228
|
+
case "-":
|
|
229
|
+
case "?":
|
|
230
|
+
case "#":
|
|
231
|
+
case "%": {
|
|
232
|
+
if (ch === ":") {
|
|
233
|
+
nullIsUnset = true;
|
|
234
|
+
ch = this.next();
|
|
235
|
+
chs += ch ?? "\uFFFD";
|
|
236
|
+
}
|
|
237
|
+
const raw = ch === "#" || ch === "%";
|
|
238
|
+
if (nullIsUnset && raw) {
|
|
239
|
+
return this.fail(`unsupported modifier (${chs}) in substitution`);
|
|
240
|
+
}
|
|
241
|
+
const word = this.substitutionPart("}", raw, raw, "syntax error: missing '}'");
|
|
242
|
+
return `\${${name}${chs}${word}}`;
|
|
243
|
+
}
|
|
244
|
+
case "/": {
|
|
245
|
+
if (this.peek() === "/")
|
|
246
|
+
this.next();
|
|
247
|
+
const pattern = this.substitutionPart("/", true, true, "syntax error: missing '/' in ${}");
|
|
248
|
+
const replacement = this.substitutionPart("}", true, false, "syntax error: missing '}'");
|
|
249
|
+
return `\${${name}/${pattern}/${replacement}}`;
|
|
250
|
+
}
|
|
251
|
+
default:
|
|
252
|
+
return this.fail(`unsupported modifier (${chs}) in substitution`);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
substitutionPart(stop, rawEscapes, preservePatternEscapes, missing) {
|
|
256
|
+
const before = this.error;
|
|
257
|
+
const part = this.processStopOn(stop, rawEscapes, preservePatternEscapes).result;
|
|
258
|
+
// An unterminated part reports the missing closer, as BuildKit does.
|
|
259
|
+
if (before === undefined && this.error?.message.startsWith("unexpected end")) {
|
|
260
|
+
this.error = new ShellWordError({ message: missing });
|
|
261
|
+
}
|
|
262
|
+
return part;
|
|
263
|
+
}
|
|
264
|
+
processName() {
|
|
265
|
+
let name = "";
|
|
266
|
+
while (this.peek() !== EOF) {
|
|
267
|
+
const ch = this.peek();
|
|
268
|
+
if (name.length === 0 && isDigit(ch)) {
|
|
269
|
+
while (this.peek() !== EOF && isDigit(this.peek()))
|
|
270
|
+
name += this.next();
|
|
271
|
+
return name;
|
|
272
|
+
}
|
|
273
|
+
if (name.length === 0 && isSpecialParam(ch))
|
|
274
|
+
return this.next();
|
|
275
|
+
if (!isLetter(ch) && !isDigit(ch) && ch !== "_")
|
|
276
|
+
break;
|
|
277
|
+
name += this.next();
|
|
278
|
+
}
|
|
279
|
+
return name;
|
|
280
|
+
}
|
|
281
|
+
processPossibleHeredoc() {
|
|
282
|
+
this.next();
|
|
283
|
+
if (this.peek() !== "<")
|
|
284
|
+
return "<";
|
|
285
|
+
this.next();
|
|
286
|
+
let space = "";
|
|
287
|
+
while (isWhitespace(this.peek()))
|
|
288
|
+
space += this.next();
|
|
289
|
+
return `<<${space}`;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
const run = (input, options, pick) => {
|
|
293
|
+
const lexer = new Lexer(input, options);
|
|
294
|
+
const out = lexer.process();
|
|
295
|
+
return lexer.error === undefined ? Result.succeed(pick(out)) : Result.fail(lexer.error);
|
|
296
|
+
};
|
|
297
|
+
/** The word with quotes and escapes resolved. */
|
|
298
|
+
export const processWord = (word, options) => run(word, options, (out) => out.result);
|
|
299
|
+
/** The input split into words, as a shell would. */
|
|
300
|
+
export const processWords = (input, options) => run(input, options, (out) => out.words);
|
|
301
|
+
//# sourceMappingURL=ShellWord.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShellWord.js","sources":["../src/ShellWord.ts"],"names":[],"mappings":"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"}
|
package/lib/Swarm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Swarm.d.ts","
|
|
1
|
+
{"version":3,"file":"Swarm.d.ts","sources":["../src/Swarm.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAqB,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,UAAU;IACzB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC5B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,KAAM,SAAQ,QAAQ,CACrC,cAAc,EACd,UAAU,EACV;IACE,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;CACf,EACD,KAAK,EACL,SAAS,CACV;CAAG;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,eAAO,MAAM,KAAK,iDAAkC,CAAC;AAErD,eAAO,MAAM,aAAa,6EAgFvB,CAAC"}
|
package/lib/Swarm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Swarm.js","
|
|
1
|
+
{"version":3,"file":"Swarm.js","sources":["../src/Swarm.ts"],"names":[],"mappings":"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"}
|
package/lib/Volume.d.ts
CHANGED
|
@@ -39,7 +39,20 @@ export interface Volume extends Resource<"Docker.Volume", VolumeProps, {
|
|
|
39
39
|
mountpoint?: string;
|
|
40
40
|
/** Creation timestamp in milliseconds since epoch. */
|
|
41
41
|
createdAt: number;
|
|
42
|
-
}, never, Providers> {
|
|
42
|
+
}, never, Providers, VolumeLookup> {
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Props for {@link Volume.lookup}: find a volume this stack
|
|
46
|
+
* doesn't manage by its name.
|
|
47
|
+
*/
|
|
48
|
+
export interface VolumeLookup {
|
|
49
|
+
/** Volume name. */
|
|
50
|
+
name: string;
|
|
51
|
+
/**
|
|
52
|
+
* Docker context the engine is reached through.
|
|
53
|
+
* @default the current context
|
|
54
|
+
*/
|
|
55
|
+
context?: string;
|
|
43
56
|
}
|
|
44
57
|
/**
|
|
45
58
|
* A Docker volume managed through the active Docker context.
|
|
@@ -85,6 +98,16 @@ export interface Volume extends Resource<"Docker.Volume", VolumeProps, {
|
|
|
85
98
|
* });
|
|
86
99
|
* ```
|
|
87
100
|
*
|
|
101
|
+
* ### Looking up an existing volume
|
|
102
|
+
* `Volume.lookup` references a volume Alchemy doesn't manage (created with
|
|
103
|
+
* the Docker CLI, Compose or another stack). It is read during plan/deploy,
|
|
104
|
+
* never created, updated or removed.
|
|
105
|
+
*
|
|
106
|
+
* **Example:** Reference an existing volume
|
|
107
|
+
* ```typescript
|
|
108
|
+
* const data = Docker.Volume.lookup({ name: "pgdata" });
|
|
109
|
+
* ```
|
|
110
|
+
*
|
|
88
111
|
* @resource
|
|
89
112
|
* @product Volume
|
|
90
113
|
*/
|
package/lib/Volume.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Volume.d.ts","
|
|
1
|
+
{"version":3,"file":"Volume.d.ts","sources":["../src/Volume.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,OAAO,EAAE,MAAM,EAAyC,MAAM,aAAa,CAAC;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,WAAW;IAC1B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAC7B;AAED,MAAM,WAAW,MAAO,SAAQ,QAAQ,CACtC,eAAe,EACf,WAAW,EACX;IACE,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;CACnB,EACD,KAAK,EACL,SAAS,EACT,YAAY,CACb;CAAG;AAEJ;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,eAAO,MAAM,MAAM,kDAAoC,CAAC;AAExD,eAAO,MAAM,cAAc,8IAwExB,CAAC;AAaJ,eAAO,MAAM,kBAAkB,SAAU,MAAM,CAAC,MAAM,KAAG,MAAM,CAAC,YAAY,CAQ1E,CAAC"}
|
package/lib/Volume.js
CHANGED
|
@@ -50,6 +50,16 @@ import { Docker, dockerContextName, dockerPhysicalName } from "./Docker.js";
|
|
|
50
50
|
* });
|
|
51
51
|
* ```
|
|
52
52
|
*
|
|
53
|
+
* ### Looking up an existing volume
|
|
54
|
+
* `Volume.lookup` references a volume Alchemy doesn't manage (created with
|
|
55
|
+
* the Docker CLI, Compose or another stack). It is read during plan/deploy,
|
|
56
|
+
* never created, updated or removed.
|
|
57
|
+
*
|
|
58
|
+
* **Example:** Reference an existing volume
|
|
59
|
+
* ```typescript
|
|
60
|
+
* const data = Docker.Volume.lookup({ name: "pgdata" });
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
53
63
|
* @resource
|
|
54
64
|
* @product Volume
|
|
55
65
|
*/
|
|
@@ -58,6 +68,12 @@ export const VolumeProvider = () => Provider.effect(Volume, Effect.gen(function*
|
|
|
58
68
|
const docker = yield* Docker;
|
|
59
69
|
return Volume.Provider.of({
|
|
60
70
|
list: () => Effect.succeed([]),
|
|
71
|
+
lookup: Effect.fn(function* ({ name, context }) {
|
|
72
|
+
const info = yield* docker.volume
|
|
73
|
+
.inspect(name, context)
|
|
74
|
+
.pipe(Effect.catchReason("PlatformError", "NotFound", () => Effect.undefined));
|
|
75
|
+
return info ? toVolumeAttributes(info) : undefined;
|
|
76
|
+
}),
|
|
61
77
|
read: Effect.fn(function* ({ id, instanceId, olds, output }) {
|
|
62
78
|
const context = dockerContextName(olds?.context);
|
|
63
79
|
const name = yield* dockerPhysicalName(id, olds, instanceId);
|
package/lib/Volume.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Volume.js","
|
|
1
|
+
{"version":3,"file":"Volume.js","sources":["../src/Volume.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,KAAK,2BAA2B,GACjC,MAAM,oBAAoB,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAE1B,MAAM,oBAAoB,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alchemy.run/docker",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.86",
|
|
4
4
|
"description": "Docker images, containers, networks, volumes and registries for Alchemy, and the image builds container platforms share.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"alchemy",
|
|
@@ -48,20 +48,20 @@
|
|
|
48
48
|
"access": "public"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"rolldown": "1.2.
|
|
51
|
+
"rolldown": "1.2.16"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@effect/platform-bun": "^4.
|
|
54
|
+
"@effect/platform-bun": "^4.1.4",
|
|
55
55
|
"@types/bun": "1.4.3",
|
|
56
56
|
"@types/node": "26.6.5",
|
|
57
|
-
"alchemy": "2.0.0-beta.
|
|
58
|
-
"effect": "^4.
|
|
59
|
-
"typescript": "^7.0.
|
|
57
|
+
"alchemy": "2.0.0-beta.86",
|
|
58
|
+
"effect": "^4.1.4",
|
|
59
|
+
"typescript": "^7.1.0-dev.20261105.1"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
|
-
"@effect/platform-bun": "^4.
|
|
63
|
-
"alchemy": "2.0.0-beta.
|
|
64
|
-
"effect": "^4.
|
|
62
|
+
"@effect/platform-bun": "^4.1.4",
|
|
63
|
+
"alchemy": "2.0.0-beta.86",
|
|
64
|
+
"effect": "^4.1.4"
|
|
65
65
|
},
|
|
66
66
|
"peerDependenciesMeta": {
|
|
67
67
|
"@effect/platform-bun": {
|
package/src/Bootstrap.ts
CHANGED
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
stackFromEnv,
|
|
14
14
|
} from "alchemy/Runtime/Bootstrap";
|
|
15
15
|
import * as ConfigProvider from "effect/ConfigProvider";
|
|
16
|
+
import * as SecureRandom from "effect/crypto/SecureRandom";
|
|
16
17
|
import * as Effect from "effect/Effect";
|
|
17
18
|
import * as FetchHttpClient from "effect/http/FetchHttpClient";
|
|
18
19
|
import * as Layer from "effect/Layer";
|
|
@@ -27,6 +28,7 @@ export const bootstrap = (entrypoint: unknown): Promise<void> => {
|
|
|
27
28
|
const platform = Layer.mergeAll(
|
|
28
29
|
BunServices.layer,
|
|
29
30
|
FetchHttpClient.layer,
|
|
31
|
+
SecureRandom.layerWebCrypto,
|
|
30
32
|
Logger.layer([Logger.consolePretty()]),
|
|
31
33
|
);
|
|
32
34
|
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BuildKit layer-cache configuration shared by every Alchemy resource that
|
|
3
|
+
* builds a container image: `Docker.Image`, `Cloudflare.Container`, the
|
|
4
|
+
* `AWS.ECS`/`AWS.EKS`/`Kubernetes` image sources, `GCP.Run`, `AWS.ECR.Image`
|
|
5
|
+
* and `AWS.Lambda` image functions.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import * as Schema from "effect/Schema";
|
|
9
|
+
import type { RegistryCredentials } from "./Docker.ts";
|
|
10
|
+
import { repositoryFromImageRef } from "./Registry.ts";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Where an image build imports layer caches from and exports them to, as
|
|
14
|
+
* BuildKit's own `--cache-from` / `--cache-to` values, e.g.
|
|
15
|
+
* `"type=gha,scope=app,mode=max"`. See
|
|
16
|
+
* [cache backends](https://docs.docker.com/build/cache/backends/).
|
|
17
|
+
*
|
|
18
|
+
* Exporting a cache needs a builder that supports it: a `docker-container`
|
|
19
|
+
* Buildx builder (what `docker/setup-buildx-action` creates in CI), or the
|
|
20
|
+
* `docker` driver with the containerd image store. Backends such as `gha`
|
|
21
|
+
* and `s3` take credentials from the environment; values reach `docker`'s
|
|
22
|
+
* argv, so never put secrets in them.
|
|
23
|
+
*/
|
|
24
|
+
export interface BuildCache {
|
|
25
|
+
/** Cache sources (`--cache-from`), imported in order. */
|
|
26
|
+
from?: ReadonlyArray<string>;
|
|
27
|
+
/** Cache destinations (`--cache-to`). */
|
|
28
|
+
to?: ReadonlyArray<string>;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** Decodes a `cache` option: `true`/`false` or a {@link BuildCache}. */
|
|
32
|
+
export const BuildCacheSchema = Schema.Union([
|
|
33
|
+
Schema.Boolean,
|
|
34
|
+
Schema.Struct({
|
|
35
|
+
from: Schema.String.pipe(Schema.Array, Schema.optionalKey),
|
|
36
|
+
to: Schema.String.pipe(Schema.Array, Schema.optionalKey),
|
|
37
|
+
}),
|
|
38
|
+
]);
|
|
39
|
+
|
|
40
|
+
/** The `cache` option of an image build. */
|
|
41
|
+
export interface BuildCacheOptions {
|
|
42
|
+
/**
|
|
43
|
+
* Keep the image's build layers in a remote cache, so a builder that has
|
|
44
|
+
* never built it (a fresh CI runner, another machine) skips unchanged
|
|
45
|
+
* steps. Without it, builds reuse only the local BuildKit cache of the
|
|
46
|
+
* machine they run on.
|
|
47
|
+
*
|
|
48
|
+
* `true` imports and exports a registry cache at the `:buildcache` tag of
|
|
49
|
+
* the repository the image is published to, keeping every stage's layers
|
|
50
|
+
* (`mode=max`), not only the final image's. For another backend, pass
|
|
51
|
+
* BuildKit's own `--cache-from` / `--cache-to` values as `from` and `to`.
|
|
52
|
+
* The cache is never part of the image's content hash, so changing it
|
|
53
|
+
* never rebuilds an image.
|
|
54
|
+
*
|
|
55
|
+
* @default false
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* // Registry cache next to the image:
|
|
60
|
+
* build: { cache: true }
|
|
61
|
+
*
|
|
62
|
+
* // GitHub Actions cache:
|
|
63
|
+
* build: {
|
|
64
|
+
* cache: {
|
|
65
|
+
* from: ["type=gha,scope=app"],
|
|
66
|
+
* to: ["type=gha,scope=app,mode=max"],
|
|
67
|
+
* },
|
|
68
|
+
* }
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
cache?: boolean | BuildCache;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* `--cache-from` / `--cache-to` values for a `cache` option. `true` uses a
|
|
76
|
+
* registry cache at `ref` (the target repository's `:buildcache`), stored as
|
|
77
|
+
* an OCI image manifest, the format every registry accepts (ECR rejects
|
|
78
|
+
* BuildKit's default cache index).
|
|
79
|
+
*/
|
|
80
|
+
export const resolveBuildCache = (
|
|
81
|
+
cache: boolean | BuildCache | undefined,
|
|
82
|
+
ref: string,
|
|
83
|
+
): { "cache-from": string[]; "cache-to": string[] } =>
|
|
84
|
+
cache === true
|
|
85
|
+
? {
|
|
86
|
+
"cache-from": [`type=registry,ref=${ref}`],
|
|
87
|
+
"cache-to": [`type=registry,ref=${ref},mode=max,image-manifest=true,oci-mediatypes=true`],
|
|
88
|
+
}
|
|
89
|
+
: { "cache-from": [...((cache || {}).from ?? [])], "cache-to": [...((cache || {}).to ?? [])] };
|
|
90
|
+
|
|
91
|
+
/** The `:buildcache` ref in the repository of an image ref (`repo:tag` or `repo@digest`). */
|
|
92
|
+
export const buildCacheRef = (imageRef: string): string =>
|
|
93
|
+
`${repositoryFromImageRef(imageRef)}:buildcache`;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* `docker.image.build` options for the `cache` option of an image published
|
|
97
|
+
* to `imageUri`. The build authenticates with the push `credentials`, so it
|
|
98
|
+
* can import and export a cache in the target registry.
|
|
99
|
+
*/
|
|
100
|
+
export const imageBuildCacheOptions = (
|
|
101
|
+
options: BuildCacheOptions | undefined,
|
|
102
|
+
imageUri: string,
|
|
103
|
+
credentials: RegistryCredentials | undefined,
|
|
104
|
+
): {
|
|
105
|
+
"cache-from"?: string[];
|
|
106
|
+
"cache-to"?: string[];
|
|
107
|
+
credentials?: RegistryCredentials;
|
|
108
|
+
} =>
|
|
109
|
+
options?.cache
|
|
110
|
+
? { ...resolveBuildCache(options.cache, buildCacheRef(imageUri)), credentials }
|
|
111
|
+
: {};
|