docker build support

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
This commit is contained in:
Andrea Luzzardi
2021-02-19 00:09:53 -08:00
parent 5e6d850172
commit bc2dae7e32
11 changed files with 292 additions and 11 deletions

View File

@@ -0,0 +1,90 @@
package test
import "dagger.io/dagger"
// Set to `--input-dir=./tests/dockerbuild/testdata`
TestData: dagger.#Dir
TestInlinedDockerfile: #dagger: compute: [
dagger.#DockerBuild & {
dockerfile: """
FROM alpine:latest@sha256:ab00606a42621fb68f2ed6ad3c88be54397f981a7b70a79db3d1172b11c4367d
RUN echo hello world
"""
},
]
TestOpChaining: #dagger: compute: [
dagger.#DockerBuild & {
dockerfile: """
FROM alpine:latest@sha256:ab00606a42621fb68f2ed6ad3c88be54397f981a7b70a79db3d1172b11c4367d
RUN echo foobar > /output
"""
},
dagger.#Exec & {
args: ["sh", "-c", "test $(cat /output) = foobar"]
}
]
TestBuildContext: #dagger: compute: [
dagger.#DockerBuild & {
context: TestData
},
dagger.#Exec & {
args: ["sh", "-c", "test $(cat /dir/foo) = foobar"]
}
]
TestBuildContextAndDockerfile: #dagger: compute: [
dagger.#DockerBuild & {
context: TestData
dockerfile: """
FROM alpine:latest@sha256:ab00606a42621fb68f2ed6ad3c88be54397f981a7b70a79db3d1172b11c4367d
COPY foo /override
"""
},
dagger.#Exec & {
args: ["sh", "-c", "test $(cat /override) = foobar"]
}
]
TestDockerfilePath: #dagger: compute: [
dagger.#DockerBuild & {
context: TestData
dockerfilePath: "./dockerfilepath/Dockerfile.custom"
},
dagger.#Exec & {
args: ["sh", "-c", "test $(cat /test) = dockerfilePath"]
}
]
TestBuildArgs: #dagger: compute: [
dagger.#DockerBuild & {
dockerfile: """
FROM alpine:latest@sha256:ab00606a42621fb68f2ed6ad3c88be54397f981a7b70a79db3d1172b11c4367d
ARG TEST=foo
RUN test "${TEST}" = "bar"
"""
buildArg: TEST: "bar"
}
]
// FIXME: this doesn't test anything beside not crashing
TestBuildLabels: #dagger: compute: [
dagger.#DockerBuild & {
dockerfile: """
FROM alpine:latest@sha256:ab00606a42621fb68f2ed6ad3c88be54397f981a7b70a79db3d1172b11c4367d
"""
label: FOO: "bar"
}
]
// FIXME: this doesn't test anything beside not crashing
TestBuildPlatform: #dagger: compute: [
dagger.#DockerBuild & {
dockerfile: """
FROM alpine:latest@sha256:ab00606a42621fb68f2ed6ad3c88be54397f981a7b70a79db3d1172b11c4367d
"""
platforms: ["linux/amd64"]
}
]

3
tests/dockerbuild/testdata/Dockerfile vendored Normal file
View File

@@ -0,0 +1,3 @@
FROM alpine:latest@sha256:ab00606a42621fb68f2ed6ad3c88be54397f981a7b70a79db3d1172b11c4367d
COPY . /dir
RUN test $(cat /dir/foo) = foobar

View File

@@ -0,0 +1,2 @@
FROM alpine:latest@sha256:ab00606a42621fb68f2ed6ad3c88be54397f981a7b70a79db3d1172b11c4367d
RUN echo dockerfilePath > /test

1
tests/dockerbuild/testdata/foo vendored Normal file
View File

@@ -0,0 +1 @@
foobar

View File

@@ -229,6 +229,11 @@ test::subdir() {
"$dagger" "${DAGGER_BINARY_ARGS[@]}" compute "$d"/subdir/simple
}
test::dockerbuild() {
test::one "Docker Build" --exit=0 \
"$dagger" "${DAGGER_BINARY_ARGS[@]}" compute --input-dir TestData="$d"/dockerbuild/testdata "$d"/dockerbuild
}
test::all(){
local dagger="$1"
@@ -244,6 +249,7 @@ test::all(){
test::export "$dagger"
test::input "$dagger"
test::subdir "$dagger"
test::dockerbuild "$dagger"
test::examples "$dagger"
}