package compose
import (
"alpha.dagger.io/dagger"
"alpha.dagger.io/docker"
"alpha.dagger.io/random"
)
repo: dagger.#Artifact @dagger(input)
TestSSH: {
key: dagger.#Secret @dagger(input)
host: string @dagger(input)
user: string @dagger(input)
}
TestCompose: {
// Generate a random string.
// Seed is used to force buildkit execution and not simply use a previous generated string.
suffix: random.#String & {seed: "cmp"}
name: "compose_test_\(suffix.out)"
up: #App & {
ssh: {
key: TestSSH.key
host: TestSSH.host
user: TestSSH.user
source: repo
"name": name
verify: docker.#Command & {
ssh: up.run.ssh
command: #"""
docker container ls | grep "\#(name)_api" | grep "Up"
"""#
cleanup: #CleanupCompose & {
context: up.run
ssh: verify.ssh
TestInlineCompose: {
suffix: random.#String & {seed: "cmp-inline"}
name: "inline_test_\(suffix.out)"
composeFile: #"""
version: "3"
services:
api-mix:
build: .
environment:
PORT: 7000
ports:
- 7000
docker container ls | grep "\#(name)_api-mix" | grep "Up"