Fix examples/simple (cannot load across package imports)
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
This commit is contained in:
parent
23a1211cdf
commit
fa2cfc1267
@ -1,50 +0,0 @@
|
|||||||
package alpine
|
|
||||||
|
|
||||||
// Default version pinned to digest. Manually updated.
|
|
||||||
let defaultDigest="sha256:3c7497bf0c7af93428242d6176e8f7905f2201d8fc5861f45be7a346b5f23436"
|
|
||||||
|
|
||||||
ref: string
|
|
||||||
|
|
||||||
// Match a combination of inputs 'version' and 'digest':
|
|
||||||
*{
|
|
||||||
// no version, no digest:
|
|
||||||
ref: "index.docker.io/alpine@\(defaultDigest)"
|
|
||||||
} | {
|
|
||||||
// version, no digest
|
|
||||||
version: string
|
|
||||||
ref: "alpine:\(version)"
|
|
||||||
} | {
|
|
||||||
// digest, no version
|
|
||||||
digest: string
|
|
||||||
ref: "alpine@\(digest)"
|
|
||||||
} | {
|
|
||||||
// version and digest
|
|
||||||
version: string
|
|
||||||
digest: string
|
|
||||||
ref: "alpine:\(version)@\(digest)"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Packages to install
|
|
||||||
package: [string]: true | false | string
|
|
||||||
|
|
||||||
#dagger: compute: [
|
|
||||||
{
|
|
||||||
do: "fetch-container"
|
|
||||||
"ref": ref
|
|
||||||
},
|
|
||||||
for pkg, info in package {
|
|
||||||
if (info & true) != _|_ {
|
|
||||||
do: "exec"
|
|
||||||
args: ["apk", "add", "-U", "--no-cache", pkg]
|
|
||||||
// https://github.com/blocklayerhq/dagger/issues/6
|
|
||||||
mount: foo: {}
|
|
||||||
}
|
|
||||||
if (info & string) != _|_ {
|
|
||||||
do: "exec"
|
|
||||||
args: ["apk", "add", "-U", "--no-cache", "\(pkg)\(info)"]
|
|
||||||
// https://github.com/blocklayerhq/dagger/issues/6
|
|
||||||
mount: foo: {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
@ -51,7 +51,9 @@ package dagger
|
|||||||
|
|
||||||
// Any component can be referenced as a directory, since
|
// Any component can be referenced as a directory, since
|
||||||
// every dagger script outputs a filesystem state (aka a directory)
|
// every dagger script outputs a filesystem state (aka a directory)
|
||||||
#Dir: #Component
|
#Dir: #Component & {
|
||||||
|
#dagger: compute: _
|
||||||
|
}
|
||||||
|
|
||||||
#Script: [...#Op]
|
#Script: [...#Op]
|
||||||
|
|
||||||
@ -67,8 +69,8 @@ package dagger
|
|||||||
}
|
}
|
||||||
|
|
||||||
#Local: {
|
#Local: {
|
||||||
do: "local"
|
do: "local"
|
||||||
dir: string
|
dir: string
|
||||||
include: [...string] | *[]
|
include: [...string] | *[]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,11 +94,11 @@ package dagger
|
|||||||
#MountCache: "cache"
|
#MountCache: "cache"
|
||||||
#MountComponent: {
|
#MountComponent: {
|
||||||
from: #Component
|
from: #Component
|
||||||
path: string | *"/"
|
path: string | *"/"
|
||||||
}
|
}
|
||||||
#MountScript: {
|
#MountScript: {
|
||||||
from: #Script
|
from: #Script
|
||||||
path: string | *"/"
|
path: string | *"/"
|
||||||
}
|
}
|
||||||
|
|
||||||
#FetchContainer: {
|
#FetchContainer: {
|
||||||
|
@ -3,23 +3,33 @@
|
|||||||
package acme
|
package acme
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"dagger.cloud/alpine"
|
|
||||||
"dagger.cloud/dagger"
|
"dagger.cloud/dagger"
|
||||||
)
|
)
|
||||||
|
|
||||||
let base=alpine & {
|
let alpine={
|
||||||
package: {
|
digest: "sha256:3c7497bf0c7af93428242d6176e8f7905f2201d8fc5861f45be7a346b5f23436"
|
||||||
bash: ">3.0"
|
package: [string]: true | false | string
|
||||||
rsync: true
|
#dagger: compute: [
|
||||||
}
|
{
|
||||||
|
do: "fetch-container"
|
||||||
|
ref: "index.docker.io@\(digest)"
|
||||||
|
},
|
||||||
|
for pkg, info in package {
|
||||||
|
if (info & true) != _|_ {
|
||||||
|
do: "exec"
|
||||||
|
args: ["apk", "add", "-U", "--no-cache", pkg]
|
||||||
|
}
|
||||||
|
if (info & string) != _|_ {
|
||||||
|
do: "exec"
|
||||||
|
args: ["apk", "add", "-U", "--no-cache", "\(pkg)\(info)"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
www: {
|
www: {
|
||||||
|
|
||||||
source: {
|
source: dagger.#Dir
|
||||||
// Make this undefined on purpose to require an input directory.
|
|
||||||
#dagger: compute: _
|
|
||||||
}
|
|
||||||
|
|
||||||
// List the contents of the source directory
|
// List the contents of the source directory
|
||||||
listing: {
|
listing: {
|
||||||
@ -27,7 +37,7 @@ www: {
|
|||||||
|
|
||||||
#dagger: compute: [
|
#dagger: compute: [
|
||||||
dagger.#Load & {
|
dagger.#Load & {
|
||||||
from: base
|
from: alpine
|
||||||
},
|
},
|
||||||
dagger.#Exec & {
|
dagger.#Exec & {
|
||||||
args: ["sh", "-c", "ls /src > /tmp/out"]
|
args: ["sh", "-c", "ls /src > /tmp/out"]
|
||||||
@ -47,7 +57,10 @@ www: {
|
|||||||
string
|
string
|
||||||
|
|
||||||
#dagger: compute: [
|
#dagger: compute: [
|
||||||
dagger.#Load & { from: base },
|
{
|
||||||
|
do: "load"
|
||||||
|
from: alpine
|
||||||
|
},
|
||||||
dagger.#Exec & {
|
dagger.#Exec & {
|
||||||
args: ["sh", "-c", "echo -n 'https://\(host)/foo' > /tmp/out"]
|
args: ["sh", "-c", "echo -n 'https://\(host)/foo' > /tmp/out"]
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user