package docker

import (
	"dagger.io/dagger"
	"universe.dagger.io/nginx"
)

build0: #Build & {
	steps: [
		{
			output: #Image & {
				config: user: "foo"
			}
		},
	]
}

// Inventory of real-world build use cases
//
// 1. Build netlify image
//    - import alpine base
//    - execute 'yarn add netlify'

// 2. Build todoapp dev image
//    - import nginx base
//    - copy app directory into /usr/share/nginx/html

build2: {
	source: dagger.#FS

	build: #Build & {
		steps: [
			nginx.#Build & {
				flavor: "alpine"
			},
			{
				// Custom step to watermark the image
				input:  _
				output: input & {
					config: user: "42"
				}
			},
			#Copy & {
				contents: source
				dest:     "/usr/share/nginx/html"
			},
		]
	}
	img: build.output

	// Assert:
	img: config: user: "42"
}

// 3. Build alpine base image
//    - pull from docker hub
//    - execute 'apk add' once per package

// 4. Build app from dockerfile

// 5. execute several commands in a row

build3: {
	build: #Build & {
		steps: [
			#Pull & {
				source: "alpine"
			},
			#Run & {
				script: "echo A > /A.txt"
			},
			#Run & {
				script: "echo B > /B.txt"
			},
			#Run & {
				script: "echo C > /C.txt"
			},
		]
	}

	result: build.output
}