Merge pull request #971 from VazeeKevin/tasks/improve-stdlib-docker
stdlib/docker: update #Build to incorporate image from Dockerfile
This commit is contained in:
commit
12e457e9e9
@ -12,13 +12,14 @@ import "alpha.dagger.io/docker"
|
|||||||
|
|
||||||
## docker.#Build
|
## docker.#Build
|
||||||
|
|
||||||
Build a Docker image from source, using included Dockerfile
|
Build a Docker image from source
|
||||||
|
|
||||||
### docker.#Build Inputs
|
### docker.#Build Inputs
|
||||||
|
|
||||||
| Name | Type | Description |
|
| Name | Type | Description |
|
||||||
| ------------- |:-------------: |:-------------: |
|
| ------------- |:-------------: |:-------------: |
|
||||||
|*source* | `dagger.#Artifact` |- |
|
|*source* | `dagger.#Artifact` |Build context |
|
||||||
|
|*dockerfile* | `*null \| string` |Dockerfile passed as a string |
|
||||||
|
|
||||||
### docker.#Build Outputs
|
### docker.#Build Outputs
|
||||||
|
|
||||||
@ -39,21 +40,6 @@ A container image that can run any docker command
|
|||||||
|
|
||||||
_No output._
|
_No output._
|
||||||
|
|
||||||
## docker.#ImageFromDockerfile
|
|
||||||
|
|
||||||
Build a Docker image from the provided Dockerfile contents
|
|
||||||
|
|
||||||
### docker.#ImageFromDockerfile Inputs
|
|
||||||
|
|
||||||
| Name | Type | Description |
|
|
||||||
| ------------- |:-------------: |:-------------: |
|
|
||||||
|*dockerfile* | `string` |Dockerfile passed as a string |
|
|
||||||
|*context* | `dagger.#Artifact` |Build context |
|
|
||||||
|
|
||||||
### docker.#ImageFromDockerfile Outputs
|
|
||||||
|
|
||||||
_No output._
|
|
||||||
|
|
||||||
## docker.#Pull
|
## docker.#Pull
|
||||||
|
|
||||||
Pull a docker container
|
Pull a docker container
|
||||||
|
@ -6,15 +6,22 @@ import (
|
|||||||
"alpha.dagger.io/dagger/op"
|
"alpha.dagger.io/dagger/op"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Build a Docker image from source, using included Dockerfile
|
// Build a Docker image from source
|
||||||
#Build: {
|
#Build: {
|
||||||
|
// Build context
|
||||||
source: dagger.#Input & {dagger.#Artifact}
|
source: dagger.#Input & {dagger.#Artifact}
|
||||||
|
|
||||||
|
// Dockerfile passed as a string
|
||||||
|
dockerfile: dagger.#Input & {*null | string}
|
||||||
|
|
||||||
args?: [string]: string
|
args?: [string]: string
|
||||||
|
|
||||||
#up: [
|
#up: [
|
||||||
op.#DockerBuild & {
|
op.#DockerBuild & {
|
||||||
context: source
|
context: source
|
||||||
|
if dockerfile != null {
|
||||||
|
"dockerfile": dockerfile
|
||||||
|
}
|
||||||
if args != _|_ {
|
if args != _|_ {
|
||||||
buildArg: args
|
buildArg: args
|
||||||
}
|
}
|
||||||
@ -150,20 +157,3 @@ import (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build a Docker image from the provided Dockerfile contents
|
|
||||||
// FIXME: incorporate into #Build
|
|
||||||
#ImageFromDockerfile: {
|
|
||||||
// Dockerfile passed as a string
|
|
||||||
dockerfile: dagger.#Input & {string}
|
|
||||||
|
|
||||||
// Build context
|
|
||||||
context: dagger.#Input & {dagger.#Artifact}
|
|
||||||
|
|
||||||
#up: [
|
|
||||||
op.#DockerBuild & {
|
|
||||||
"context": context
|
|
||||||
"dockerfile": dockerfile
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
@ -28,15 +28,43 @@ TestBuild: {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
TestSourceImageFromDockerfile: dagger.#Artifact @dagger(input)
|
TestBuildWithArgs: {
|
||||||
|
image: #Build & {
|
||||||
TestImageFromDockerfile: {
|
|
||||||
image: #ImageFromDockerfile & {
|
|
||||||
dockerfile: """
|
dockerfile: """
|
||||||
FROM alpine
|
FROM alpine
|
||||||
COPY test.txt /test.txt
|
ARG TEST
|
||||||
|
ENV TEST=$TEST
|
||||||
|
RUN echo "$TEST" > /test.txt
|
||||||
"""
|
"""
|
||||||
context: TestSourceImageFromDockerfile
|
source: ""
|
||||||
|
args: TEST: "test"
|
||||||
|
}
|
||||||
|
|
||||||
|
verify: #up: [
|
||||||
|
op.#Load & {
|
||||||
|
from: image
|
||||||
|
},
|
||||||
|
|
||||||
|
op.#Exec & {
|
||||||
|
always: true
|
||||||
|
args: [
|
||||||
|
"sh", "-c", """
|
||||||
|
grep -q "test" /test.txt
|
||||||
|
""",
|
||||||
|
]
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
TestSourceImageFromDockerfile: dagger.#Artifact @dagger(input)
|
||||||
|
|
||||||
|
TestImageFromDockerfile: {
|
||||||
|
image: #Build & {
|
||||||
|
dockerfile: """
|
||||||
|
FROM alpine
|
||||||
|
COPY test.txt /test.txt
|
||||||
|
"""
|
||||||
|
source: TestSourceImageFromDockerfile
|
||||||
}
|
}
|
||||||
|
|
||||||
verify: #up: [
|
verify: #up: [
|
||||||
|
@ -17,12 +17,12 @@ TestPush: {
|
|||||||
|
|
||||||
target: "daggerio/ci-test:\(tag.out)"
|
target: "daggerio/ci-test:\(tag.out)"
|
||||||
|
|
||||||
image: #ImageFromDockerfile & {
|
image: #Build & {
|
||||||
dockerfile: """
|
dockerfile: """
|
||||||
FROM alpine
|
FROM alpine
|
||||||
RUN echo "test" > /test.txt
|
RUN echo "test" > /test.txt
|
||||||
"""
|
"""
|
||||||
context: ""
|
source: ""
|
||||||
}
|
}
|
||||||
|
|
||||||
push: #Push & {
|
push: #Push & {
|
||||||
|
@ -18,12 +18,12 @@ TestResources: {
|
|||||||
// Seed is used to force buildkit execution and not simply use a previous generated string.
|
// Seed is used to force buildkit execution and not simply use a previous generated string.
|
||||||
suffix: random.#String & {seed: "docker multi registry"}
|
suffix: random.#String & {seed: "docker multi registry"}
|
||||||
|
|
||||||
image: #ImageFromDockerfile & {
|
image: #Build & {
|
||||||
dockerfile: """
|
dockerfile: """
|
||||||
FROM alpine
|
FROM alpine
|
||||||
RUN echo "test" > /test.txt
|
RUN echo "test" > /test.txt
|
||||||
"""
|
"""
|
||||||
context: ""
|
source: ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,12 +17,12 @@ TestPush: {
|
|||||||
|
|
||||||
target: "daggerio/ci-test:\(tag.out)"
|
target: "daggerio/ci-test:\(tag.out)"
|
||||||
|
|
||||||
image: #ImageFromDockerfile & {
|
image: #Build & {
|
||||||
dockerfile: """
|
dockerfile: """
|
||||||
FROM alpine
|
FROM alpine
|
||||||
RUN echo "test" > /test.txt
|
RUN echo "test" > /test.txt
|
||||||
"""
|
"""
|
||||||
context: ""
|
source: ""
|
||||||
}
|
}
|
||||||
|
|
||||||
push: #Push & {
|
push: #Push & {
|
||||||
|
Reference in New Issue
Block a user