a0bb201e45
Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>
108 lines
2.1 KiB
CUE
108 lines
2.1 KiB
CUE
package docker
|
|
|
|
import (
|
|
"dagger.io/dagger"
|
|
|
|
"universe.dagger.io/docker"
|
|
"universe.dagger.io/alpine"
|
|
)
|
|
|
|
dagger.#Plan & {
|
|
actions: test: run: {
|
|
_build: alpine.#Build & {
|
|
packages: bash: _
|
|
}
|
|
_image: _build.output
|
|
|
|
// Test: run a simple shell command
|
|
simpleShell: {
|
|
run: docker.#Run & {
|
|
input: _image
|
|
command: {
|
|
name: "/bin/sh"
|
|
args: ["-c", "echo -n hello world >> /output.txt"]
|
|
}
|
|
}
|
|
|
|
verify: dagger.#ReadFile & {
|
|
input: run.output.rootfs
|
|
path: "/output.txt"
|
|
}
|
|
verify: contents: "hello world"
|
|
}
|
|
|
|
// Test: export a file
|
|
exportFile: {
|
|
run: docker.#Run & {
|
|
input: _image
|
|
command: {
|
|
name: "sh"
|
|
flags: "-c": #"""
|
|
echo -n hello world >> /output.txt
|
|
"""#
|
|
}
|
|
export: files: "/output.txt": string & "hello world"
|
|
}
|
|
}
|
|
|
|
// Test: export a directory
|
|
exportDirectory: {
|
|
run: docker.#Run & {
|
|
input: _image
|
|
command: {
|
|
name: "sh"
|
|
flags: "-c": #"""
|
|
mkdir -p /test
|
|
echo -n hello world >> /test/output.txt
|
|
"""#
|
|
}
|
|
export: directories: "/test": _
|
|
}
|
|
|
|
verify: dagger.#ReadFile & {
|
|
input: run.export.directories."/test"
|
|
path: "/output.txt"
|
|
}
|
|
verify: contents: "hello world"
|
|
}
|
|
|
|
// Test: configs overriding image defaults
|
|
configs: {
|
|
_base: docker.#Set & {
|
|
input: _image
|
|
config: {
|
|
user: "nobody"
|
|
workdir: "/sbin"
|
|
entrypoint: ["sh"]
|
|
cmd: ["-c", "echo -n $0 $PWD $(whoami) > /tmp/output.txt"]
|
|
}
|
|
}
|
|
|
|
// check defaults not overriden by image config
|
|
runDefaults: docker.#Run & {
|
|
input: _image
|
|
command: {
|
|
name: "sh"
|
|
flags: "-c": "echo -n $PWD $(whoami) > /output.txt"
|
|
}
|
|
export: files: "/output.txt": "/ root"
|
|
}
|
|
|
|
// check image defaults
|
|
imageDefaults: docker.#Run & {
|
|
input: _base.output
|
|
export: files: "/tmp/output.txt": "sh /sbin nobody"
|
|
}
|
|
|
|
// check overrides by user
|
|
overrides: docker.#Run & {
|
|
input: _base.output
|
|
entrypoint: ["bash"]
|
|
workdir: "/root"
|
|
user: "root"
|
|
export: files: "/tmp/output.txt": "bash /root root"
|
|
}
|
|
}
|
|
}
|
|
}
|