refactor!: Move image definitions to dagger/core

BREAKING CHANGE: Adjust imports for for `#Ref`, `#ImageConfig` and `#HealthCheck`.

Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>
This commit is contained in:
Helder Correia 2022-04-04 15:19:36 +00:00
parent 7dbe4e9aa5
commit d55088c612
No known key found for this signature in database
GPG Key ID: C6490D872EF1DCA7
4 changed files with 49 additions and 50 deletions

View File

@ -5,18 +5,53 @@ import (
"dagger.io/dagger" "dagger.io/dagger"
) )
// A ref is an address for a remote container image
//
// Examples:
// - "index.docker.io/dagger"
// - "dagger"
// - "index.docker.io/dagger:latest"
// - "index.docker.io/dagger:latest@sha256:a89cb097693dd354de598d279c304a1c73ee550fbfff6d9ee515568e0c749cfe"
#Ref: string
// Container image config. See [OCI](https://www.opencontainers.org/).
#ImageConfig: {
user?: string
expose?: [string]: {}
env?: [string]: string
entrypoint?: [...string]
cmd?: [...string]
volume?: [string]: {}
workdir?: string
label?: [string]: string
stopsignal?: string
healthcheck?: #HealthCheck
argsescaped?: bool
onbuild?: [...string]
stoptimeout?: int
shell?: [...string]
}
#HealthCheck: {
test?: [...string]
interval?: int
timeout?: int
startperiod?: int
retries?: int
}
// Upload a container image to a remote repository // Upload a container image to a remote repository
#Push: { #Push: {
$dagger: task: _name: "Push" $dagger: task: _name: "Push"
// Target repository address // Target repository address
dest: dagger.#Ref dest: #Ref
// Filesystem contents to push // Filesystem contents to push
input: dagger.#FS input: dagger.#FS
// Container image config // Container image config
config: dagger.#ImageConfig config: #ImageConfig
// Authentication // Authentication
auth?: { auth?: {
@ -25,7 +60,7 @@ import (
} }
// Complete ref of the pushed image, including digest // Complete ref of the pushed image, including digest
result: dagger.#Ref result: #Ref
} }
// Download a container image from a remote repository // Download a container image from a remote repository
@ -33,7 +68,7 @@ import (
$dagger: task: _name: "Pull" $dagger: task: _name: "Pull"
// Repository source ref // Repository source ref
source: dagger.#Ref source: #Ref
// Authentication // Authentication
auth?: { auth?: {
@ -48,7 +83,7 @@ import (
digest: string digest: string
// Downloaded container image config // Downloaded container image config
config: dagger.#ImageConfig config: #ImageConfig
} }
// Build a container image using a Dockerfile // Build a container image using a Dockerfile
@ -80,7 +115,7 @@ import (
output: dagger.#FS output: dagger.#FS
// Container image config produced // Container image config produced
config: dagger.#ImageConfig config: #ImageConfig
} }
// Export an image as a tar archive // Export an image as a tar archive
@ -91,7 +126,7 @@ import (
input: dagger.#FS input: dagger.#FS
// Container image config // Container image config
config: dagger.#ImageConfig config: #ImageConfig
// Name and optionally a tag in the 'name:tag' format // Name and optionally a tag in the 'name:tag' format
tag: string tag: string
@ -112,13 +147,13 @@ import (
// Change image config // Change image config
#Set: { #Set: {
// The source image config // The source image config
input: dagger.#ImageConfig input: #ImageConfig
// The config to merge // The config to merge
config: dagger.#ImageConfig config: #ImageConfig
// Resulting config // Resulting config
output: dagger.#ImageConfig & { output: #ImageConfig & {
let structs = ["env", "label", "volume", "expose"] let structs = ["env", "label", "volume", "expose"]
let lists = ["onbuild"] let lists = ["onbuild"]

View File

@ -1,36 +0,0 @@
package dagger
// A ref is an address for a remote container image
//
// Examples:
// - "index.docker.io/dagger"
// - "dagger"
// - "index.docker.io/dagger:latest"
// - "index.docker.io/dagger:latest@sha256:a89cb097693dd354de598d279c304a1c73ee550fbfff6d9ee515568e0c749cfe"
#Ref: string
// Container image config. See [OCI](https://www.opencontainers.org/).
#ImageConfig: {
user?: string
expose?: [string]: {}
env?: [string]: string
entrypoint?: [...string]
cmd?: [...string]
volume?: [string]: {}
workdir?: string
label?: [string]: string
stopsignal?: string
healthcheck?: #HealthCheck
argsescaped?: bool
onbuild?: [...string]
stoptimeout?: int
shell?: [...string]
}
#HealthCheck: {
test?: [...string]
interval?: int
timeout?: int
startperiod?: int
retries?: int
}

View File

@ -2,6 +2,7 @@ package docker
import ( import (
"dagger.io/dagger" "dagger.io/dagger"
"dagger.io/dagger/core"
) )
// A container image // A container image
@ -10,7 +11,7 @@ import (
rootfs: dagger.#FS rootfs: dagger.#FS
// Image config // Image config
config: dagger.#ImageConfig config: core.#ImageConfig
} }
// A ref is an address for a remote container image // A ref is an address for a remote container image
@ -20,4 +21,4 @@ import (
// - "index.docker.io/dagger:latest" // - "index.docker.io/dagger:latest"
// - "index.docker.io/dagger:latest@sha256:a89cb097693dd354de598d279c304a1c73ee550fbfff6d9ee515568e0c749cfe" // - "index.docker.io/dagger:latest@sha256:a89cb097693dd354de598d279c304a1c73ee550fbfff6d9ee515568e0c749cfe"
// FIXME: add formatting constraints // FIXME: add formatting constraints
#Ref: dagger.#Ref #Ref: core.#Ref

View File

@ -1,7 +1,6 @@
package docker package docker
import ( import (
"dagger.io/dagger"
"dagger.io/dagger/core" "dagger.io/dagger/core"
) )
@ -11,7 +10,7 @@ import (
input: #Image input: #Image
// The image config to change // The image config to change
config: dagger.#ImageConfig config: core.#ImageConfig
_set: core.#Set & { _set: core.#Set & {
"input": input.config "input": input.config