Compare commits

..

23 Commits

Author SHA1 Message Date
Bryce Lampe
5f16c2f2fa Fix unauthenticated example 2024-04-25 10:13:52 -07:00
Bryce Lampe
9d35ccefac Regenerate SDKs 2024-04-25 09:58:30 -07:00
Bryce Lampe
13fb5b6158 Update examples and docs for required push 2024-04-25 09:51:24 -07:00
Bryce Lampe
f8796f9095 Make push a required param 2024-04-25 09:25:50 -07:00
Bryce Lampe
5175dbeb3f Add an upgrade test 2024-04-25 09:22:20 -07:00
Bryce Lampe
2499eeb27b Don't tidy 2024-04-23 09:33:42 -07:00
Bryce Lampe
5135d9c759 Update preview docs 2024-04-23 09:13:42 -07:00
Bryce Lampe
f5e57ab70c Merge branch 'main' of github.com:pulumi/pulumi-docker-build into forklift 2024-04-22 16:29:36 -07:00
Bryce Lampe
2987a65183 Fix diff behavior for buildOnPreview 2024-04-22 16:28:45 -07:00
Bryce Lampe
fbc4ddec66 Regenerate schema 2024-04-22 16:05:51 -07:00
Bryce Lampe
40a3223b23 Build images during preview by default 2024-04-22 16:04:01 -07:00
Bryce Lampe
72bd40b97c Add note about stability and tweak index docs 2024-04-22 15:57:02 -07:00
Bryce Lampe
a6247a78b1 Update README 2024-04-22 13:52:59 -07:00
Bryce Lampe
7597ca32ca Fix host auth key format 2024-04-22 12:44:24 -07:00
Bryce Lampe
0f23201468 Extend cli auth wrap test 2024-04-22 12:34:20 -07:00
Bryce Lampe
d72c895b59 Add a test for unauthenticated dockerhub pulls 2024-04-22 12:17:37 -07:00
Bryce Lampe
da63cd4cf4 Fix target docs 2024-04-22 12:04:35 -07:00
Bryce Lampe
561b185221 Don't log empty status or errors 2024-04-22 11:22:36 -07:00
Bryce Lampe
50b9b5ce3e Upgrade go-provider to fix panic 2024-04-22 11:22:00 -07:00
Bryce Lampe
bcf1c48554 More renames 2024-04-19 16:29:31 -07:00
Pulumi Bot
2545dd3089 Update GitHub Actions workflows. (#33)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit 0f215352010902e51d20ed66185ecb6f5a403245.
2024-04-18 22:03:49 -07:00
Bryce Lampe
40f5fdf15e Test version 2024-04-18 10:08:12 -07:00
Pulumi Bot
c6ebf2c6ca Update GitHub Actions workflows. (#30)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit 65ba487d5688115d8b9c8533c384953f66342fc6.
2024-04-17 22:03:35 -07:00
79 changed files with 2723 additions and 1269 deletions

View File

@@ -8,8 +8,6 @@ updates:
pulumi:
patterns:
- "github.com/pulumi/*"
exclude-patterns:
- "k8s.io/utils"
labels:
- dependencies
- impact/no-changelog-required

View File

@@ -75,6 +75,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
@@ -172,6 +173,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
@@ -267,6 +269,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
@@ -379,6 +382,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Clear GitHub Actions Ubuntu runner disk space
uses: jlumbroso/free-disk-space@v1.3.1
with:
@@ -439,6 +443,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
@@ -517,6 +522,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
@@ -562,6 +568,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: golangci-lint provider pkg
uses: golangci/golangci-lint-action@v4
with:

View File

@@ -67,6 +67,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
@@ -164,6 +165,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
@@ -258,6 +260,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
@@ -370,6 +373,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Clear GitHub Actions Ubuntu runner disk space
uses: jlumbroso/free-disk-space@v1.3.1
with:
@@ -430,6 +434,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
@@ -508,6 +513,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:

View File

@@ -67,6 +67,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
@@ -164,6 +165,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
@@ -258,6 +260,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
@@ -370,6 +373,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Clear GitHub Actions Ubuntu runner disk space
uses: jlumbroso/free-disk-space@v1.3.1
with:
@@ -430,6 +434,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
@@ -508,6 +513,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:

View File

@@ -92,6 +92,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
@@ -192,6 +193,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
@@ -290,6 +292,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
@@ -412,6 +415,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: golangci-lint provider pkg
uses: golangci/golangci-lint-action@v4
with:

View File

@@ -60,6 +60,7 @@ jobs:
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:

View File

@@ -18,6 +18,7 @@ builds:
ldflags:
- -X
github.com/pulumi/pulumi-docker-build/provider/pkg/version.Version={{.Tag}}
- -X github.com/pulumi/pulumi-docker-build/provider.Version={{.Tag}}
binary: pulumi-resource-docker-build
archives:
- name_template: "{{ .Binary }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}"

View File

@@ -18,6 +18,7 @@ builds:
ldflags:
- -X
github.com/pulumi/pulumi-docker-build/provider/pkg/version.Version={{.Tag}}
- -X github.com/pulumi/pulumi-docker-build/provider.Version={{.Tag}}
binary: pulumi-resource-docker-build
archives:
- name_template: "{{ .Binary }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}"

View File

@@ -25,7 +25,8 @@ GOGLANGCILINT := bin/golangci-lint
ensure:: tidy lint test_provider examples
.PHONY: tidy
tidy: go.sum
tidy:
go mod tidy
.PHONY: provider
provider: bin/${PROVIDER} bin/pulumi-gen-${PACK} # Required by CI
@@ -179,7 +180,6 @@ bin/pulumi-gen-${PACK}: # Required by CI
go.mod: $(shell find . -name '*.go')
go.sum: go.mod
go mod tidy
sdk: $(shell mkdir -p sdk)
sdk: sdk/python sdk/nodejs sdk/java sdk/python sdk/go sdk/dotnet
@@ -243,6 +243,6 @@ sdk/java: $(PULUMI) bin/${PROVIDER}
cd ${TMPDIR}/java/ && gradle --console=plain build
mv -f ${TMPDIR}/java ${WORKING_DIR}/sdk/.
docs: $(shell find docs/yaml -type f) $(shell find ./provider/internal/embed -name '*.md')
docs: $(shell find docs/yaml -type f) $(shell find ./provider/internal/embed -name '*.md') ${SCHEMA_PATH}
go generate docs/generate.go
@touch docs

117
README.md
View File

@@ -1,106 +1,23 @@
# Pulumi Native Provider Boilerplate
[![Slack](http://www.pulumi.com/images/docs/badges/slack.svg)](https://slack.pulumi.com)
[![NPM version](https://badge.fury.io/js/%40pulumi%2fdocker-build.svg)](https://www.npmjs.com/package/@pulumi/docker-build)
[![Python version](https://badge.fury.io/py/pulumi-docker-build.svg)](https://pypi.org/project/pulumi-docker-build)
[![NuGet version](https://badge.fury.io/nu/pulumi.dockerbuild.svg)](https://badge.fury.io/nu/pulumi.dockerbuild)
[![PkgGoDev](https://pkg.go.dev/badge/github.com/pulumi/pulumi-docker-build/sdk/go)](https://pkg.go.dev/github.com/pulumi/pulumi-docker-build/sdk/go)
[![License](https://img.shields.io/npm/l/%40pulumi%2Fpulumi.svg)](https://github.com/pulumi/pulumi-docker-build/blob/main/LICENSE)
This repository is a boilerplate showing how to create and locally test a native Pulumi provider.
# Docker-Build Resource Provider
## Authoring a Pulumi Native Provider
A [Pulumi](http://pulumi.com) provider for building modern Docker images with [buildx](https://docs.docker.com/build/architecture/) and [BuildKit](https://docs.docker.com/build/buildkit/).
This boilerplate creates a working Pulumi-owned provider named `xyz`.
It implements a random number generator that you can [build and test out for yourself](#test-against-the-example) and then replace the Random code with code specific to your provider.
Not to be confused with the earlier
[Docker](http://github.com/pulumi/pulumi-docker) provider, which is still
appropriate for managing resources unrelated to building images.
| Provider | Use cases |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `@pulumi/docker-build` | Anything related to building images with `docker build`. |
| `@pulumi/docker` | Everything else -- including running containers and creating networks. |
### Prerequisites
## Reference
Prerequisites for this repository are already satisfied by the [Pulumi Devcontainer](https://github.com/pulumi/devcontainer) if you are using Github Codespaces, or VSCode.
If you are not using VSCode, you will need to ensure the following tools are installed and present in your `$PATH`:
* [`pulumictl`](https://github.com/pulumi/pulumictl#installation)
* [Go 1.21](https://golang.org/dl/) or 1.latest
* [NodeJS](https://nodejs.org/en/) 14.x. We recommend using [nvm](https://github.com/nvm-sh/nvm) to manage NodeJS installations.
* [Yarn](https://yarnpkg.com/)
* [TypeScript](https://www.typescriptlang.org/)
* [Python](https://www.python.org/downloads/) (called as `python3`). For recent versions of MacOS, the system-installed version is fine.
* [.NET](https://dotnet.microsoft.com/download)
### Build & test the boilerplate XYZ provider
1. Create a new Github CodeSpaces environment using this repository.
1. Open a terminal in the CodeSpaces environment.
1. Run `make build install` to build and install the provider.
1. Run `make gen_examples` to generate the example programs in `examples/` off of the source `examples/yaml` example program.
1. Run `make up` to run the example program in `examples/yaml`.
1. Run `make down` to tear down the example program.
### Creating a new provider repository
Pulumi offers this repository as a [GitHub template repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template) for convenience. From this repository:
1. Click "Use this template".
1. Set the following options:
* Owner: pulumi
* Repository name: pulumi-xyz-native (replace "xyz" with the name of your provider)
* Description: Pulumi provider for xyz
* Repository type: Public
1. Clone the generated repository.
From the templated repository:
1. Search-replace `xyz` with the name of your desired provider.
#### Build the provider and install the plugin
```bash
$ make build install
```
This will:
1. Create the SDK codegen binary and place it in a `./bin` folder (gitignored)
2. Create the provider binary and place it in the `./bin` folder (gitignored)
3. Generate the dotnet, Go, Node, and Python SDKs and place them in the `./sdk` folder
4. Install the provider on your machine.
#### Test against the example
```bash
$ cd examples/simple
$ yarn link @pulumi/xyz
$ yarn install
$ pulumi stack init test
$ pulumi up
```
Now that you have completed all of the above steps, you have a working provider that generates a random string for you.
#### A brief repository overview
You now have:
1. A `provider/` folder containing the building and implementation logic
1. `cmd/pulumi-resource-xyz/main.go` - holds the provider's sample implementation logic.
2. `deployment-templates` - a set of files to help you around deployment and publication
3. `sdk` - holds the generated code libraries created by `pulumi-gen-xyz/main.go`
4. `examples` a folder of Pulumi programs to try locally and/or use in CI.
5. A `Makefile` and this `README`.
#### Additional Details
This repository depends on the pulumi-go-provider library. For more details on building providers, please check
the [Pulumi Go Provider docs](https://github.com/pulumi/pulumi-go-provider).
### Build Examples
Create an example program using the resources defined in your provider, and place it in the `examples/` folder.
You can now repeat the steps for [build, install, and test](#test-against-the-example).
## Configuring CI and releases
1. Follow the instructions laid out in the [deployment templates](./deployment-templates/README-DEPLOYMENT.md).
## References
Other resources/examples for implementing providers:
* [Pulumi Command provider](https://github.com/pulumi/pulumi-command/blob/master/provider/pkg/provider/provider.go)
* [Pulumi Go Provider repository](https://github.com/pulumi/pulumi-go-provider)
For more information, including examples and migration guidance, please see the Docker-Build provider's detailed [API documentation](https://www.pulumi.com/registry/packages/docker-build/).

View File

@@ -6,7 +6,7 @@ resources:
ecr-repository:
type: aws:ecr:Repository
my-image:
type: dockerbuild:Image
type: docker-build:Image
properties:
tags:
- ${ecr-repository.repositoryUrl}:latest
@@ -36,20 +36,21 @@ runtime: yaml
description: Multi-platform image
resources:
image:
type: dockerbuild:Image
type: docker-build:Image
properties:
context:
location: "app"
platforms:
- plan9/amd64
- plan9/386
push: false
---
name: registry
runtime: yaml
description: Registry export
resources:
image:
type: dockerbuild:Image
type: docker-build:Image
properties:
tags:
- "docker.io/pulumi/pulumi:3.107.0"
@@ -68,7 +69,7 @@ runtime: yaml
description: Caching
resources:
image:
type: dockerbuild:Image
type: docker-build:Image
properties:
context:
location: "app"
@@ -79,65 +80,71 @@ resources:
cacheFrom:
- local:
src: tmp/cache
push: false
---
name: dbc
runtime: yaml
description: Docker Build Cloud
resources:
image:
type: dockerbuild:Image
type: docker-build:Image
properties:
context:
location: "app"
exec: true
builder:
name: cloud-builder-name
push: false
---
name: build-args
runtime: yaml
description: Build arguments
resources:
image:
type: dockerbuild:Image
type: docker-build:Image
properties:
context:
location: "app"
buildArgs:
SET_ME_TO_TRUE: "true"
push: false
---
name: build-target
runtime: yaml
description: Build target
resources:
image:
type: dockerbuild:Image
type: docker-build:Image
properties:
context:
location: "app"
target: "build-me"
push: false
---
name: named-contexts
runtime: yaml
description: Named contexts
resources:
image:
type: dockerbuild:Image
type: docker-build:Image
properties:
context:
location: app
named:
"golang:latest":
location: "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"
push: false
---
name: remote-context
runtime: yaml
description: Remote context
resources:
image:
type: dockerbuild:Image
type: docker-build:Image
properties:
context:
location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
push: false
---
name: inline
@@ -145,7 +152,7 @@ runtime: yaml
description: Inline Dockerfile
resources:
image:
type: dockerbuild:Image
type: docker-build:Image
properties:
dockerfile:
inline: |
@@ -153,28 +160,31 @@ resources:
COPY hello.c ./
context:
location: "app"
push: false
---
name: remote-context
runtime: yaml
description: Remote context
resources:
image:
type: dockerbuild:Image
type: docker-build:Image
properties:
dockerfile:
location: app/Dockerfile
context:
location: "https://github.com/docker-library/hello-world.git"
push: false
---
name: docker-load
runtime: yaml
description: Local export
resources:
image:
type: dockerbuild:Image
type: docker-build:Image
properties:
context:
location: "app"
exports:
- docker:
tar: true
push: false

View File

@@ -9,6 +9,7 @@ return await Deployment.RunAsync(() =>
var dockerHubPassword = config.Require("dockerHubPassword");
var multiPlatform = new DockerBuild.Image("multiPlatform", new()
{
Push = false,
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
{
Location = "./app/Dockerfile.multiPlatform",
@@ -26,6 +27,7 @@ return await Deployment.RunAsync(() =>
var registryPush = new DockerBuild.Image("registryPush", new()
{
Push = false,
Context = new DockerBuild.Inputs.BuildContextArgs
{
Location = "./app",
@@ -58,6 +60,7 @@ return await Deployment.RunAsync(() =>
var cached = new DockerBuild.Image("cached", new()
{
Push = false,
Context = new DockerBuild.Inputs.BuildContextArgs
{
Location = "./app",
@@ -87,6 +90,7 @@ return await Deployment.RunAsync(() =>
var buildArgs = new DockerBuild.Image("buildArgs", new()
{
Push = false,
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
{
Location = "./app/Dockerfile.buildArgs",
@@ -103,6 +107,7 @@ return await Deployment.RunAsync(() =>
var extraHosts = new DockerBuild.Image("extraHosts", new()
{
Push = false,
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
{
Location = "./app/Dockerfile.extraHosts",
@@ -119,6 +124,7 @@ return await Deployment.RunAsync(() =>
var sshMount = new DockerBuild.Image("sshMount", new()
{
Push = false,
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
{
Location = "./app/Dockerfile.sshMount",
@@ -138,6 +144,7 @@ return await Deployment.RunAsync(() =>
var secrets = new DockerBuild.Image("secrets", new()
{
Push = false,
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
{
Location = "./app/Dockerfile.secrets",
@@ -154,6 +161,7 @@ return await Deployment.RunAsync(() =>
var labels = new DockerBuild.Image("labels", new()
{
Push = false,
Context = new DockerBuild.Inputs.BuildContextArgs
{
Location = "./app",
@@ -166,6 +174,7 @@ return await Deployment.RunAsync(() =>
var target = new DockerBuild.Image("target", new()
{
Push = false,
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
{
Location = "./app/Dockerfile.target",
@@ -179,6 +188,7 @@ return await Deployment.RunAsync(() =>
var namedContexts = new DockerBuild.Image("namedContexts", new()
{
Push = false,
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
{
Location = "./app/Dockerfile.namedContexts",
@@ -198,6 +208,7 @@ return await Deployment.RunAsync(() =>
var remoteContext = new DockerBuild.Image("remoteContext", new()
{
Push = false,
Context = new DockerBuild.Inputs.BuildContextArgs
{
Location = "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
@@ -206,6 +217,7 @@ return await Deployment.RunAsync(() =>
var remoteContextWithInline = new DockerBuild.Image("remoteContextWithInline", new()
{
Push = false,
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
{
Inline = @"FROM busybox
@@ -220,6 +232,7 @@ COPY hello.c ./
var inline = new DockerBuild.Image("inline", new()
{
Push = false,
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
{
Inline = @"FROM alpine
@@ -234,6 +247,7 @@ RUN echo ""This uses an inline Dockerfile! 👍""
var dockerLoad = new DockerBuild.Image("dockerLoad", new()
{
Push = false,
Context = new DockerBuild.Inputs.BuildContextArgs
{
Location = "./app",

View File

@@ -11,6 +11,7 @@ func main() {
cfg := config.New(ctx, "")
dockerHubPassword := cfg.Require("dockerHubPassword")
multiPlatform, err := dockerbuild.NewImage(ctx, "multiPlatform", &dockerbuild.ImageArgs{
Push: pulumi.Bool(false),
Dockerfile: &dockerbuild.DockerfileArgs{
Location: pulumi.String("./app/Dockerfile.multiPlatform"),
},
@@ -26,6 +27,7 @@ func main() {
return err
}
_, err = dockerbuild.NewImage(ctx, "registryPush", &dockerbuild.ImageArgs{
Push: pulumi.Bool(false),
Context: &dockerbuild.BuildContextArgs{
Location: pulumi.String("./app"),
},
@@ -52,6 +54,7 @@ func main() {
return err
}
_, err = dockerbuild.NewImage(ctx, "cached", &dockerbuild.ImageArgs{
Push: pulumi.Bool(false),
Context: &dockerbuild.BuildContextArgs{
Location: pulumi.String("./app"),
},
@@ -75,6 +78,7 @@ func main() {
return err
}
_, err = dockerbuild.NewImage(ctx, "buildArgs", &dockerbuild.ImageArgs{
Push: pulumi.Bool(false),
Dockerfile: &dockerbuild.DockerfileArgs{
Location: pulumi.String("./app/Dockerfile.buildArgs"),
},
@@ -89,6 +93,7 @@ func main() {
return err
}
_, err = dockerbuild.NewImage(ctx, "extraHosts", &dockerbuild.ImageArgs{
Push: pulumi.Bool(false),
Dockerfile: &dockerbuild.DockerfileArgs{
Location: pulumi.String("./app/Dockerfile.extraHosts"),
},
@@ -103,6 +108,7 @@ func main() {
return err
}
_, err = dockerbuild.NewImage(ctx, "sshMount", &dockerbuild.ImageArgs{
Push: pulumi.Bool(false),
Dockerfile: &dockerbuild.DockerfileArgs{
Location: pulumi.String("./app/Dockerfile.sshMount"),
},
@@ -119,6 +125,7 @@ func main() {
return err
}
_, err = dockerbuild.NewImage(ctx, "secrets", &dockerbuild.ImageArgs{
Push: pulumi.Bool(false),
Dockerfile: &dockerbuild.DockerfileArgs{
Location: pulumi.String("./app/Dockerfile.secrets"),
},
@@ -133,6 +140,7 @@ func main() {
return err
}
_, err = dockerbuild.NewImage(ctx, "labels", &dockerbuild.ImageArgs{
Push: pulumi.Bool(false),
Context: &dockerbuild.BuildContextArgs{
Location: pulumi.String("./app"),
},
@@ -144,6 +152,7 @@ func main() {
return err
}
_, err = dockerbuild.NewImage(ctx, "target", &dockerbuild.ImageArgs{
Push: pulumi.Bool(false),
Dockerfile: &dockerbuild.DockerfileArgs{
Location: pulumi.String("./app/Dockerfile.target"),
},
@@ -156,6 +165,7 @@ func main() {
return err
}
_, err = dockerbuild.NewImage(ctx, "namedContexts", &dockerbuild.ImageArgs{
Push: pulumi.Bool(false),
Dockerfile: &dockerbuild.DockerfileArgs{
Location: pulumi.String("./app/Dockerfile.namedContexts"),
},
@@ -172,6 +182,7 @@ func main() {
return err
}
_, err = dockerbuild.NewImage(ctx, "remoteContext", &dockerbuild.ImageArgs{
Push: pulumi.Bool(false),
Context: &dockerbuild.BuildContextArgs{
Location: pulumi.String("https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"),
},
@@ -180,6 +191,7 @@ func main() {
return err
}
_, err = dockerbuild.NewImage(ctx, "remoteContextWithInline", &dockerbuild.ImageArgs{
Push: pulumi.Bool(false),
Dockerfile: &dockerbuild.DockerfileArgs{
Inline: pulumi.String("FROM busybox\nCOPY hello.c ./\n"),
},
@@ -191,6 +203,7 @@ func main() {
return err
}
_, err = dockerbuild.NewImage(ctx, "inline", &dockerbuild.ImageArgs{
Push: pulumi.Bool(false),
Dockerfile: &dockerbuild.DockerfileArgs{
Inline: pulumi.String("FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"),
},
@@ -202,6 +215,7 @@ func main() {
return err
}
_, err = dockerbuild.NewImage(ctx, "dockerLoad", &dockerbuild.ImageArgs{
Push: pulumi.Bool(false),
Context: &dockerbuild.BuildContextArgs{
Location: pulumi.String("./app"),
},

View File

@@ -32,6 +32,7 @@ public class App {
final var config = ctx.config();
final var dockerHubPassword = config.get("dockerHubPassword");
var multiPlatform = new Image("multiPlatform", ImageArgs.builder()
.push(false)
.dockerfile(DockerfileArgs.builder()
.location("./app/Dockerfile.multiPlatform")
.build())
@@ -44,6 +45,7 @@ public class App {
.build());
var registryPush = new Image("registryPush", ImageArgs.builder()
.push(false)
.context(BuildContextArgs.builder()
.location("./app")
.build())
@@ -62,6 +64,7 @@ public class App {
.build());
var cached = new Image("cached", ImageArgs.builder()
.push(false)
.context(BuildContextArgs.builder()
.location("./app")
.build())
@@ -79,6 +82,7 @@ public class App {
.build());
var buildArgs = new Image("buildArgs", ImageArgs.builder()
.push(false)
.dockerfile(DockerfileArgs.builder()
.location("./app/Dockerfile.buildArgs")
.build())
@@ -89,6 +93,7 @@ public class App {
.build());
var extraHosts = new Image("extraHosts", ImageArgs.builder()
.push(false)
.dockerfile(DockerfileArgs.builder()
.location("./app/Dockerfile.extraHosts")
.build())
@@ -99,6 +104,7 @@ public class App {
.build());
var sshMount = new Image("sshMount", ImageArgs.builder()
.push(false)
.dockerfile(DockerfileArgs.builder()
.location("./app/Dockerfile.sshMount")
.build())
@@ -111,6 +117,7 @@ public class App {
.build());
var secrets = new Image("secrets", ImageArgs.builder()
.push(false)
.dockerfile(DockerfileArgs.builder()
.location("./app/Dockerfile.secrets")
.build())
@@ -121,6 +128,7 @@ public class App {
.build());
var labels = new Image("labels", ImageArgs.builder()
.push(false)
.context(BuildContextArgs.builder()
.location("./app")
.build())
@@ -128,6 +136,7 @@ public class App {
.build());
var target = new Image("target", ImageArgs.builder()
.push(false)
.dockerfile(DockerfileArgs.builder()
.location("./app/Dockerfile.target")
.build())
@@ -138,6 +147,7 @@ public class App {
.build());
var namedContexts = new Image("namedContexts", ImageArgs.builder()
.push(false)
.dockerfile(DockerfileArgs.builder()
.location("./app/Dockerfile.namedContexts")
.build())
@@ -148,12 +158,14 @@ public class App {
.build());
var remoteContext = new Image("remoteContext", ImageArgs.builder()
.push(false)
.context(BuildContextArgs.builder()
.location("https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile")
.build())
.build());
var remoteContextWithInline = new Image("remoteContextWithInline", ImageArgs.builder()
.push(false)
.dockerfile(DockerfileArgs.builder()
.inline("""
FROM busybox
@@ -166,6 +178,7 @@ COPY hello.c ./
.build());
var inline = new Image("inline", ImageArgs.builder()
.push(false)
.dockerfile(DockerfileArgs.builder()
.inline("""
FROM alpine
@@ -178,6 +191,7 @@ RUN echo "This uses an inline Dockerfile! 👍"
.build());
var dockerLoad = new Image("dockerLoad", ImageArgs.builder()
.push(false)
.context(BuildContextArgs.builder()
.location("./app")
.build())

View File

@@ -4,6 +4,7 @@ import * as docker_build from "@pulumi/docker-build";
const config = new pulumi.Config();
const dockerHubPassword = config.require("dockerHubPassword");
const multiPlatform = new docker_build.Image("multiPlatform", {
push: false,
dockerfile: {
location: "./app/Dockerfile.multiPlatform",
},
@@ -16,6 +17,7 @@ const multiPlatform = new docker_build.Image("multiPlatform", {
],
});
const registryPush = new docker_build.Image("registryPush", {
push: false,
context: {
location: "./app",
},
@@ -33,6 +35,7 @@ const registryPush = new docker_build.Image("registryPush", {
}],
});
const cached = new docker_build.Image("cached", {
push: false,
context: {
location: "./app",
},
@@ -49,6 +52,7 @@ const cached = new docker_build.Image("cached", {
}],
});
const buildArgs = new docker_build.Image("buildArgs", {
push: false,
dockerfile: {
location: "./app/Dockerfile.buildArgs",
},
@@ -60,6 +64,7 @@ const buildArgs = new docker_build.Image("buildArgs", {
},
});
const extraHosts = new docker_build.Image("extraHosts", {
push: false,
dockerfile: {
location: "./app/Dockerfile.extraHosts",
},
@@ -69,6 +74,7 @@ const extraHosts = new docker_build.Image("extraHosts", {
addHosts: ["metadata.google.internal:169.254.169.254"],
});
const sshMount = new docker_build.Image("sshMount", {
push: false,
dockerfile: {
location: "./app/Dockerfile.sshMount",
},
@@ -80,6 +86,7 @@ const sshMount = new docker_build.Image("sshMount", {
}],
});
const secrets = new docker_build.Image("secrets", {
push: false,
dockerfile: {
location: "./app/Dockerfile.secrets",
},
@@ -91,6 +98,7 @@ const secrets = new docker_build.Image("secrets", {
},
});
const labels = new docker_build.Image("labels", {
push: false,
context: {
location: "./app",
},
@@ -99,6 +107,7 @@ const labels = new docker_build.Image("labels", {
},
});
const target = new docker_build.Image("target", {
push: false,
dockerfile: {
location: "./app/Dockerfile.target",
},
@@ -108,6 +117,7 @@ const target = new docker_build.Image("target", {
target: "build-me",
});
const namedContexts = new docker_build.Image("namedContexts", {
push: false,
dockerfile: {
location: "./app/Dockerfile.namedContexts",
},
@@ -120,10 +130,14 @@ const namedContexts = new docker_build.Image("namedContexts", {
},
},
});
const remoteContext = new docker_build.Image("remoteContext", {context: {
location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
}});
const remoteContext = new docker_build.Image("remoteContext", {
push: false,
context: {
location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
},
});
const remoteContextWithInline = new docker_build.Image("remoteContextWithInline", {
push: false,
dockerfile: {
inline: `FROM busybox
COPY hello.c ./
@@ -134,6 +148,7 @@ COPY hello.c ./
},
});
const inline = new docker_build.Image("inline", {
push: false,
dockerfile: {
inline: `FROM alpine
RUN echo "This uses an inline Dockerfile! 👍"
@@ -144,6 +159,7 @@ RUN echo "This uses an inline Dockerfile! 👍"
},
});
const dockerLoad = new docker_build.Image("dockerLoad", {
push: false,
context: {
location: "./app",
},

View File

@@ -4,6 +4,7 @@ import pulumi_docker_build as docker_build
config = pulumi.Config()
docker_hub_password = config.require("dockerHubPassword")
multi_platform = docker_build.Image("multiPlatform",
push=False,
dockerfile=docker_build.DockerfileArgs(
location="./app/Dockerfile.multiPlatform",
),
@@ -15,6 +16,7 @@ multi_platform = docker_build.Image("multiPlatform",
docker_build.Platform.PLAN9_386,
])
registry_push = docker_build.Image("registryPush",
push=False,
context=docker_build.BuildContextArgs(
location="./app",
),
@@ -31,6 +33,7 @@ registry_push = docker_build.Image("registryPush",
password=docker_hub_password,
)])
cached = docker_build.Image("cached",
push=False,
context=docker_build.BuildContextArgs(
location="./app",
),
@@ -46,6 +49,7 @@ cached = docker_build.Image("cached",
),
)])
build_args = docker_build.Image("buildArgs",
push=False,
dockerfile=docker_build.DockerfileArgs(
location="./app/Dockerfile.buildArgs",
),
@@ -56,6 +60,7 @@ build_args = docker_build.Image("buildArgs",
"SET_ME_TO_TRUE": "true",
})
extra_hosts = docker_build.Image("extraHosts",
push=False,
dockerfile=docker_build.DockerfileArgs(
location="./app/Dockerfile.extraHosts",
),
@@ -64,6 +69,7 @@ extra_hosts = docker_build.Image("extraHosts",
),
add_hosts=["metadata.google.internal:169.254.169.254"])
ssh_mount = docker_build.Image("sshMount",
push=False,
dockerfile=docker_build.DockerfileArgs(
location="./app/Dockerfile.sshMount",
),
@@ -74,6 +80,7 @@ ssh_mount = docker_build.Image("sshMount",
id="default",
)])
secrets = docker_build.Image("secrets",
push=False,
dockerfile=docker_build.DockerfileArgs(
location="./app/Dockerfile.secrets",
),
@@ -84,6 +91,7 @@ secrets = docker_build.Image("secrets",
"password": "hunter2",
})
labels = docker_build.Image("labels",
push=False,
context=docker_build.BuildContextArgs(
location="./app",
),
@@ -91,6 +99,7 @@ labels = docker_build.Image("labels",
"description": "This image will get a descriptive label 👍",
})
target = docker_build.Image("target",
push=False,
dockerfile=docker_build.DockerfileArgs(
location="./app/Dockerfile.target",
),
@@ -99,6 +108,7 @@ target = docker_build.Image("target",
),
target="build-me")
named_contexts = docker_build.Image("namedContexts",
push=False,
dockerfile=docker_build.DockerfileArgs(
location="./app/Dockerfile.namedContexts",
),
@@ -110,10 +120,13 @@ named_contexts = docker_build.Image("namedContexts",
),
},
))
remote_context = docker_build.Image("remoteContext", context=docker_build.BuildContextArgs(
location="https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
))
remote_context = docker_build.Image("remoteContext",
push=False,
context=docker_build.BuildContextArgs(
location="https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
))
remote_context_with_inline = docker_build.Image("remoteContextWithInline",
push=False,
dockerfile=docker_build.DockerfileArgs(
inline="""FROM busybox
COPY hello.c ./
@@ -123,6 +136,7 @@ COPY hello.c ./
location="https://github.com/docker-library/hello-world.git",
))
inline = docker_build.Image("inline",
push=False,
dockerfile=docker_build.DockerfileArgs(
inline="""FROM alpine
RUN echo "This uses an inline Dockerfile! 👍"
@@ -132,6 +146,7 @@ RUN echo "This uses an inline Dockerfile! 👍"
location="./app",
))
docker_load = docker_build.Image("dockerLoad",
push=False,
context=docker_build.BuildContextArgs(
location="./app",
),

View File

@@ -0,0 +1,238 @@
{"method":"/pulumirpc.LanguageRuntime/GetPluginInfo","request":{},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
{"method":"/pulumirpc.LanguageRuntime/GetRequiredPlugins","request":{"project":"deprecated","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","program":".","info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","entryPoint":".","options":{}}},"response":{"plugins":[{"name":"docker-build","kind":"resource"}]},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"resourceReferences"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"outputValues"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"deletedWith"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"aliasSpecs"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"transforms"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"pulumi:pulumi:Stack","name":"provider-docker-build-p-it-bryces-wor-upgrade-e061461f","object":{},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fgo%2Fpkg%2Fmod%2Fgithub.com%2Fpulumi%2Fpulumi%2Fsdk%2Fv3@v3.109.0%2Fgo%2Fpulumi%2Frun.go","line":113}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","object":{}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"0.0.2-alpha.1713828576+f5e57ab7.dirty"},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/CheckConfig","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default","olds":{},"news":{}},"response":{"inputs":{"host":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Configure","request":{"variables":{"docker-build:config:host":""},"args":{"host":""},"acceptSecrets":true,"acceptResources":true,"sendsOldInputs":true,"sendsOldInputsToDelete":true},"response":{"acceptSecrets":true,"supportsPreview":true,"acceptResources":true,"acceptOutputs":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","olds":{},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"}},"randomSeed":"Zpop9M+JmIOwQmpumbecUCsV/ks1h9w6l2kNF3lHjtY="},"response":{"inputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached","olds":{},"news":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"}},"randomSeed":"dazhCjb2uC3lg762/5M8fHXC64y7VpteYy88EbBvYRk="},"response":{"inputs":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{},"news":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}]},"randomSeed":"k/yAQzkpHW8a2lT12qIMuQfWrQ6sxi52a7UTd31LbD4="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","olds":{},"news":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"}},"randomSeed":"NEWS/2SobJBiSZclKMV4daNb9w/gZpL9pcnSEjW15fY="},"response":{"inputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","olds":{},"news":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"}},"randomSeed":"w9MW3AkZK+TS8c5c+uX+fP+Vt8poZV/PUbderi6/3dE="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"}},"randomSeed":"mV9MJBEc699p8wXnrZvEsyefqhUZDd3HxcbOcnUAdO0="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"]},"randomSeed":"SPsY4RQylcrhPetcrwIr7G+BibJW0+09naCR6cJSJGg="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","olds":{},"news":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"}},"randomSeed":"6nH/HyMcjBzTIyOjPbXERsM0mAuEXlIBKB24F1Gsa80="},"response":{"inputs":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","olds":{},"news":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"randomSeed":"fMySvdt7mS2bvuQkC+8ICtuDrqf6d8R/cNdjP+iii6w="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","olds":{},"news":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"}},"randomSeed":"pXjbeSMAG78wM0O3cgoHerpS38bRyXVDCXAXHVmkeXA="},"response":{"inputs":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","olds":{},"news":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"}},"randomSeed":"hU23n1oCU57Ug9cijDs3BOi/NUF0CsL2DRpU9QXayJU="},"response":{"inputs":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"secrets":{"password":"hunter2"}},"randomSeed":"9oO+TJ0chIeCLZuHJV29ILCIQ6XWA9HcT34B8nt7lI8="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"ssh":[{"id":"default"}]},"randomSeed":"kWpnWR43XXn09f6NoRg3J1ahweFpu+Ki90I2VetJ8SM="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::target","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"target":"build-me"},"randomSeed":"VXrvj73695AeVkkB+YfN35qaeyIUVEvBOVHVxSSfaIw="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""},"preview":true},"response":{"id":"sshMount","properties":{"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","ssh":[{"id":"default"}],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"labels","properties":{"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"sshMount","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"ssh":[{"id":"default"}]},"propertyDependencies":{"context":{},"dockerfile":{},"ssh":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount","id":"sshMount","object":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"inline","properties":{"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""},"preview":true},"response":{"id":"secrets","properties":{"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","secrets":{"password":"hunter2"},"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"inline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"}},"propertyDependencies":{"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline","id":"inline","object":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"labels","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"}},"propertyDependencies":{"context":{},"labels":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","id":"labels","object":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"secrets","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"secrets":{"password":"hunter2"}},"propertyDependencies":{"context":{},"dockerfile":{},"secrets":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","id":"secrets","object":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"preview":true},"response":{"id":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","properties":{"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"registryPush","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"propertyDependencies":{"context":{},"exports":{},"tags":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","id":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","object":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::target","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"},"preview":true},"response":{"id":"target","properties":{"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":"build-me"}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"target","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"target":"build-me"},"propertyDependencies":{"context":{},"dockerfile":{},"target":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::target","id":"target","object":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","properties":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"buildArgs","properties":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"buildArgs","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"}},"propertyDependencies":{"buildArgs":{},"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","id":"buildArgs","object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","properties":{"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"dockerLoad","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}]},"propertyDependencies":{"context":{},"exports":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","object":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached","properties":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"cached","properties":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"cached","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"}},"propertyDependencies":{"cacheFrom":{},"cacheTo":{},"context":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached","id":"cached","object":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"multiPlatform","properties":{"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"multiPlatform","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"]},"propertyDependencies":{"context":{},"dockerfile":{},"platforms":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","id":"multiPlatform","object":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResourceOutputs","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","outputs":{"platforms":["plan9/amd64","plan9/386"]}},"response":{},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","properties":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"remoteContext","properties":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"remoteContext","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"}},"propertyDependencies":{"context":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","id":"remoteContext","object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","properties":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"extraHosts","properties":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"extraHosts","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"}},"propertyDependencies":{"addHosts":{},"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","id":"extraHosts","object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","properties":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"remoteContextWithInline","properties":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"remoteContextWithInline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"}},"propertyDependencies":{"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","id":"remoteContextWithInline","object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","properties":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"namedContexts","properties":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"namedContexts","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"}},"propertyDependencies":{"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","id":"namedContexts","object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.LanguageRuntime/Run","request":{"project":"provider-docker-build","stack":"p-it-bryces-wor-upgrade-e061461f","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","program":".","dryRun":true,"parallel":40,"monitorAddress":"127.0.0.1:60753","organization":"organization","configPropertyMap":{},"info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","entryPoint":".","options":{}}},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
{"method":"/pulumirpc.LanguageRuntime/GetPluginInfo","request":{},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
{"method":"/pulumirpc.LanguageRuntime/GetRequiredPlugins","request":{"project":"deprecated","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","program":".","info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","entryPoint":".","options":{}}},"response":{"plugins":[{"name":"docker-build","kind":"resource"}]},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"resourceReferences"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"outputValues"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"deletedWith"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"aliasSpecs"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"transforms"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"pulumi:pulumi:Stack","name":"provider-docker-build-p-it-bryces-wor-upgrade-e061461f","object":{},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fgo%2Fpkg%2Fmod%2Fgithub.com%2Fpulumi%2Fpulumi%2Fsdk%2Fv3@v3.109.0%2Fgo%2Fpulumi%2Frun.go","line":113}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","object":{}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"0.0.2-alpha.1713828576+f5e57ab7.dirty"},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/CheckConfig","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default","olds":{},"news":{}},"response":{"inputs":{"host":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Configure","request":{"variables":{"docker-build:config:host":""},"args":{"host":""},"acceptSecrets":true,"acceptResources":true,"sendsOldInputs":true,"sendsOldInputsToDelete":true},"response":{"acceptSecrets":true,"supportsPreview":true,"acceptResources":true,"acceptOutputs":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached","olds":{},"news":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"}},"randomSeed":"c+JQMdFhF6DOlV8hBuEsf76TrMLc6uX0cKSx/rvuQcc="},"response":{"inputs":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","olds":{},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"}},"randomSeed":"iPranfQEDhU2tBPuJ2P7Q3/OHjdBPVHK9/IzM11zxfk="},"response":{"inputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{},"news":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}]},"randomSeed":"nIXHrGklHMSwivplBfBucdtH4wJ7A5eo7bjj4ZxL8QE="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","olds":{},"news":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"}},"randomSeed":"hd2D8/SmwfN3kSVt2mzNB6K7p8wSD24qhpQ+kH+6Kxk="},"response":{"inputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","olds":{},"news":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"}},"randomSeed":"i/5eV6MV38Hjst81A4OlJF42udbJ9Asyz/r3P+1NTZ0="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"}},"randomSeed":"spb/oBaOJEb8pwkhwRwVY/swPtN8qOE65qm/r+WENhM="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"]},"randomSeed":"VAIZ261e1K5SdjJGxUK4lFZZ81lVX9uLZNaMJZSaSgc="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","olds":{},"news":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"}},"randomSeed":"ckcraHsDcgQy8Xfc5GCkEctolkFoPJuQBchIjgaIy5o="},"response":{"inputs":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","olds":{},"news":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"randomSeed":"qLetBHXWUUbd1nzRKwb+4Q3vMS1U992mEpsIV3aWY68="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","olds":{},"news":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"}},"randomSeed":"1Z8ESqA4tOmwRrcM6D0q+ipiiHXwTJ9qgw9HT7+WaWo="},"response":{"inputs":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"secrets":{"password":"hunter2"}},"randomSeed":"jVeY5oCFxhbO0PQM/yzT/j5sqyKRIiswQOHMkXQy1cw="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"ssh":[{"id":"default"}]},"randomSeed":"DhxVd/uvzafm07NfEWe2OBqp3t/o9IR6AT18EKLmEuU="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","olds":{},"news":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"}},"randomSeed":"I0Y9+u4kHEsYQsS6cmtW6TOL8Bagud98ZK8PBzHAKOU="},"response":{"inputs":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::target","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"target":"build-me"},"randomSeed":"T9HnfRgKDfZ+iBd2a68qPmyp8eGs0f+K2xsnjj0ISWE="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","properties":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"remoteContext","properties":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"remoteContext","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"}},"propertyDependencies":{"context":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","id":"remoteContext","object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"inline","properties":{"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"inline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"}},"propertyDependencies":{"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline","id":"inline","object":{"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::target","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"}},"response":{"id":"target","properties":{"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"target","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"target":"build-me"},"propertyDependencies":{"context":{},"dockerfile":{},"target":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::target","id":"target","object":{"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"response":{"id":"secrets","properties":{"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"secrets","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"secrets":{"password":"hunter2"}},"propertyDependencies":{"context":{},"dockerfile":{},"secrets":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","id":"secrets","object":{"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"response":{"id":"sshMount","properties":{"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"sshMount","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"ssh":[{"id":"default"}]},"propertyDependencies":{"context":{},"dockerfile":{},"ssh":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount","id":"sshMount","object":{"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"response":{"id":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","properties":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"registryPush","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"propertyDependencies":{"context":{},"exports":{},"tags":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","id":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached","properties":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"cached","properties":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"cached","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"}},"propertyDependencies":{"cacheFrom":{},"cacheTo":{},"context":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached","id":"cached","object":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","properties":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"dockerLoad","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}]},"propertyDependencies":{"context":{},"exports":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","properties":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"extraHosts","properties":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"extraHosts","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"}},"propertyDependencies":{"addHosts":{},"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","id":"extraHosts","object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"labels","properties":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"labels","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"}},"propertyDependencies":{"context":{},"labels":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","id":"labels","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","properties":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"buildArgs","properties":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"buildArgs","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"}},"propertyDependencies":{"buildArgs":{},"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","id":"buildArgs","object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"response":{"id":"multiPlatform","properties":{"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"multiPlatform","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"]},"propertyDependencies":{"context":{},"dockerfile":{},"platforms":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","id":"multiPlatform","object":{"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResourceOutputs","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","outputs":{"platforms":["plan9/amd64","plan9/386"]}},"response":{},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","properties":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"namedContexts","properties":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"namedContexts","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"}},"propertyDependencies":{"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","id":"namedContexts","object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","properties":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"remoteContextWithInline","properties":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"remoteContextWithInline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"}},"propertyDependencies":{"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","id":"remoteContextWithInline","object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.LanguageRuntime/Run","request":{"project":"provider-docker-build","stack":"p-it-bryces-wor-upgrade-e061461f","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","program":".","parallel":40,"monitorAddress":"127.0.0.1:60794","organization":"organization","configPropertyMap":{},"info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","entryPoint":".","options":{}}},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
{"method":"/pulumirpc.LanguageRuntime/GetPluginInfo","request":{},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
{"method":"/pulumirpc.LanguageRuntime/GetRequiredPlugins","request":{"project":"deprecated","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","program":".","info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","entryPoint":".","options":{}}},"response":{"plugins":[{"name":"docker-build","kind":"resource"}]},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"resourceReferences"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"outputValues"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"deletedWith"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"aliasSpecs"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"transforms"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"pulumi:pulumi:Stack","name":"provider-docker-build-p-it-bryces-wor-upgrade-e061461f","object":{},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fgo%2Fpkg%2Fmod%2Fgithub.com%2Fpulumi%2Fpulumi%2Fsdk%2Fv3@v3.109.0%2Fgo%2Fpulumi%2Frun.go","line":113}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","object":{}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"0.0.2-alpha.1713828576+f5e57ab7.dirty"},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/CheckConfig","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default","olds":{"host":""},"news":{}},"response":{"inputs":{"host":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/DiffConfig","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default","olds":{"host":""},"news":{"host":""},"oldInputs":{"host":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Configure","request":{"variables":{"docker-build:config:host":""},"args":{"host":""},"acceptSecrets":true,"acceptResources":true,"sendsOldInputs":true,"sendsOldInputsToDelete":true},"response":{"acceptSecrets":true,"supportsPreview":true,"acceptResources":true,"acceptOutputs":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","olds":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"}},"randomSeed":"tMXM48V491BYs4k3nOqa+BUpCpy8mkFXc1Jyngtv2ks="},"response":{"inputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"buildArgs","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","olds":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"buildArgs","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"}},"propertyDependencies":{"buildArgs":{},"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","id":"buildArgs","object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached","olds":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"}},"randomSeed":"DcWNEJg0Y5LZ6MCTk5H8k58+T7cr/GbT3jb4gNz5zNc="},"response":{"inputs":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"cached","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached","olds":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"cached","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"}},"propertyDependencies":{"cacheFrom":{},"cacheTo":{},"context":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached","id":"cached","object":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}]},"randomSeed":"H71/WG0tiWTMF269z3kMD9zBX9Ln0uXis2MuCV/A1NQ="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"dockerLoad","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}]},"propertyDependencies":{"context":{},"exports":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","olds":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"}},"randomSeed":"HMPS/w4UZY/QwMCrYxUJnzTrLqe3q5V/LmY6nKTB484="},"response":{"inputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"extraHosts","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","olds":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"extraHosts","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"}},"propertyDependencies":{"addHosts":{},"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","id":"extraHosts","object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"}},"randomSeed":"agoXAuKdGsp1d8fTJ9q9+zEZCYWyZTuS2p3bvSUHOyA="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"inline","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline","olds":{"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"inline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"}},"propertyDependencies":{"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline","id":"inline","object":{"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"}},"randomSeed":"9dw+AeJcDZPN4zirq4fWzncjMehMUqGP+reeeUwWhBY="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"labels","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","olds":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"labels","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"}},"propertyDependencies":{"context":{},"labels":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","id":"labels","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"]},"randomSeed":"eisHaeSJgr13Hz+Y+OW0HajMWGInl2AdIdvYKhaiYM8="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"multiPlatform","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"multiPlatform","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"]},"propertyDependencies":{"context":{},"dockerfile":{},"platforms":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","id":"multiPlatform","object":{"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","olds":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"}},"randomSeed":"dozyePo0yXgy++Qeg4zKJgYgteXPg9nDONDS38XVAWc="},"response":{"inputs":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"namedContexts","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","olds":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"namedContexts","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"}},"propertyDependencies":{"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","id":"namedContexts","object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","olds":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"}},"randomSeed":"GeqkcC4hzoLB0IuMuSrn0UluNtAKnAwskinrZUpwQHY="},"response":{"inputs":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"remoteContext","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","olds":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"remoteContext","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"}},"propertyDependencies":{"context":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","id":"remoteContext","object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"news":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"randomSeed":"dJuBcpYybxF+YavduppyVIwRmNtwxnfbY/QvUOcVEkU="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","olds":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"registryPush","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"propertyDependencies":{"context":{},"exports":{},"tags":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","id":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"secrets":{"password":"hunter2"}},"randomSeed":"DQv3cDSC/jY0j+m+Uuxz4NGr+SPwkxRd0NQEcjXKjFU="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"secrets","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","olds":{"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResourceOutputs","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","outputs":{"platforms":["plan9/amd64","plan9/386"]}},"response":{},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"secrets","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"secrets":{"password":"hunter2"}},"propertyDependencies":{"context":{},"dockerfile":{},"secrets":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","id":"secrets","object":{"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","olds":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"}},"randomSeed":"LUCJNdWcMwcGg8+RC4Ps+WrX65B8InJWTsWzq/7tadw="},"response":{"inputs":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"remoteContextWithInline","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","olds":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"remoteContextWithInline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"}},"propertyDependencies":{"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","id":"remoteContextWithInline","object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"ssh":[{"id":"default"}]},"randomSeed":"XvWY+fKcYQGtROjT+EFktlT4gOcDqR5hl3ICvkGeEDE="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"sshMount","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount","olds":{"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"sshMount","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"ssh":[{"id":"default"}]},"propertyDependencies":{"context":{},"dockerfile":{},"ssh":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount","id":"sshMount","object":{"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::target","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"target":"build-me"},"randomSeed":"H0mPGShL53nYNHWweNJpfa/pyS3//KbQRVxI9hsRdqM="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"target","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::target","olds":{"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"target","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"target":"build-me"},"propertyDependencies":{"context":{},"dockerfile":{},"target":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::target","id":"target","object":{"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.LanguageRuntime/Run","request":{"project":"provider-docker-build","stack":"p-it-bryces-wor-upgrade-e061461f","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","program":".","dryRun":true,"parallel":40,"monitorAddress":"127.0.0.1:60813","organization":"organization","configPropertyMap":{},"info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","entryPoint":".","options":{}}},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
{"method":"/pulumirpc.LanguageRuntime/GetPluginInfo","request":{},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
{"method":"/pulumirpc.LanguageRuntime/GetRequiredPlugins","request":{"project":"deprecated","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","program":".","info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","entryPoint":".","options":{}}},"response":{"plugins":[{"name":"docker-build","kind":"resource"}]},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"resourceReferences"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"outputValues"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"deletedWith"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"aliasSpecs"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"transforms"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"pulumi:pulumi:Stack","name":"provider-docker-build-p-it-bryces-wor-upgrade-e061461f","object":{},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fgo%2Fpkg%2Fmod%2Fgithub.com%2Fpulumi%2Fpulumi%2Fsdk%2Fv3@v3.109.0%2Fgo%2Fpulumi%2Frun.go","line":113}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","object":{}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"0.0.2-alpha.1713828576+f5e57ab7.dirty"},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/CheckConfig","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default","olds":{"host":""},"news":{}},"response":{"inputs":{"host":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/DiffConfig","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default","olds":{"host":""},"news":{"host":""},"oldInputs":{"host":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Configure","request":{"variables":{"docker-build:config:host":""},"args":{"host":""},"acceptSecrets":true,"acceptResources":true,"sendsOldInputs":true,"sendsOldInputsToDelete":true},"response":{"acceptSecrets":true,"supportsPreview":true,"acceptResources":true,"acceptOutputs":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached","olds":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"}},"randomSeed":"0R8XzurAkZVBVo5Ak3rdfLsdkT4+q95F/3DhfHyWma8="},"response":{"inputs":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"cached","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached","olds":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"cached","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"}},"propertyDependencies":{"cacheFrom":{},"cacheTo":{},"context":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached","id":"cached","object":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","olds":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"}},"randomSeed":"y7SP2cfhyxX/xTtxfJbroa9/iXEXVW6Eaci4JXJTNxQ="},"response":{"inputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"buildArgs","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","olds":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"buildArgs","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"}},"propertyDependencies":{"buildArgs":{},"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","id":"buildArgs","object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}]},"randomSeed":"cz62E7jO5yWlw9mkJj9Ez4cpdYBF2dgh7E0FUuzLxl8="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"dockerLoad","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}]},"propertyDependencies":{"context":{},"exports":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","olds":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"}},"randomSeed":"7y6D1J226DjAjOcjiIkhaRj6CTPNcN4M2H70xK/eCVE="},"response":{"inputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"extraHosts","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","olds":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"extraHosts","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"}},"propertyDependencies":{"addHosts":{},"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","id":"extraHosts","object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"}},"randomSeed":"YY7uODwIoO2TN3U21WRsr19e/afGYYMZhvFEdWfsi4g="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"inline","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline","olds":{"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"inline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"}},"propertyDependencies":{"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline","id":"inline","object":{"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"}},"randomSeed":"w3KBpsGE5S0Y+m/1J+0/lClLXfM53bkQwrs6RHl3xlE="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"labels","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","olds":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"labels","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"}},"propertyDependencies":{"context":{},"labels":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","id":"labels","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"]},"randomSeed":"Ty0cOel4m07ZkB3A+9oMsoZbmI2Q+HUb8UsAbfy/QvU="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"multiPlatform","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"multiPlatform","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"]},"propertyDependencies":{"context":{},"dockerfile":{},"platforms":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","id":"multiPlatform","object":{"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","olds":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"}},"randomSeed":"zIZQ9y9Yx+mkkcVMVreEF0oSRj3raIAxkTQxi9rr18E="},"response":{"inputs":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"namedContexts","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","olds":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"namedContexts","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"}},"propertyDependencies":{"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","id":"namedContexts","object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"news":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"randomSeed":"+e5XWIeDD3dvxfeCWWouOUkymanKzu57dKusbE3L9Zg="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","olds":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResourceOutputs","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","outputs":{"platforms":["plan9/amd64","plan9/386"]}},"response":{},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"registryPush","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"propertyDependencies":{"context":{},"exports":{},"tags":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","id":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","olds":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"}},"randomSeed":"uB8WQMUAsec6AH38scYXxeWFx+nAhZp+rUm2WGgrYxk="},"response":{"inputs":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"remoteContext","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","olds":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"remoteContext","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"}},"propertyDependencies":{"context":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","id":"remoteContext","object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","olds":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"}},"randomSeed":"1V9l2UKAV9cHSJcJTKt0ymI0WMMLUnIr+8qPkP6XqGc="},"response":{"inputs":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"remoteContextWithInline","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","olds":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"remoteContextWithInline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"}},"propertyDependencies":{"context":{},"dockerfile":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","id":"remoteContextWithInline","object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"secrets":{"password":"hunter2"}},"randomSeed":"+icqSaPIIvsMlPWlo6cwzRCAeYedBVcz625lO/zhkio="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"secrets","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","olds":{"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"secrets","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"secrets":{"password":"hunter2"}},"propertyDependencies":{"context":{},"dockerfile":{},"secrets":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","id":"secrets","object":{"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"ssh":[{"id":"default"}]},"randomSeed":"rK2kTpMkTSvZwJOL04Qni9QGC/C92dnGNNjTxCKtSO8="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"sshMount","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount","olds":{"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"sshMount","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"ssh":[{"id":"default"}]},"propertyDependencies":{"context":{},"dockerfile":{},"ssh":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount","id":"sshMount","object":{"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::target","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"target":"build-me"},"randomSeed":"qrvpFrYtistuCpd/I8Dq63WU/hRxec5tndtlGxorgoY="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"target","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::target","olds":{"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"target","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"target":"build-me"},"propertyDependencies":{"context":{},"dockerfile":{},"target":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::target","id":"target","object":{"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"}},"metadata":{"mode":"server"}}
{"method":"/pulumirpc.LanguageRuntime/Run","request":{"project":"provider-docker-build","stack":"p-it-bryces-wor-upgrade-e061461f","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","program":".","parallel":40,"monitorAddress":"127.0.0.1:60829","organization":"organization","configPropertyMap":{},"info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","entryPoint":".","options":{}}},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"0.0.2-alpha.1713828576+f5e57ab7.dirty"},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Configure","request":{"variables":{"docker-build:config:host":""},"args":{"host":""},"acceptSecrets":true,"acceptResources":true,"sendsOldInputs":true,"sendsOldInputsToDelete":true},"response":{"acceptSecrets":true,"supportsPreview":true,"acceptResources":true,"acceptOutputs":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","properties":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"multiPlatform","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","properties":{"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"inline","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline","properties":{"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"buildArgs","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","properties":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"target","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::target","properties":{"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"labels","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","properties":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"sshMount","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount","properties":{"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"namedContexts","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","properties":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"cached","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached","properties":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"remoteContextWithInline","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","properties":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"extraHosts","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","properties":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"secrets","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","properties":{"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"remoteContext","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","properties":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","properties":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}

View File

@@ -0,0 +1,856 @@
{
"version": 3,
"deployment": {
"manifest": {
"time": "2024-04-25T08:48:01.267863-07:00",
"magic": "",
"version": ""
},
"secrets_providers": {
"type": "passphrase",
"state": {
"salt": "v1:VL+kccbv65M=:v1:rRAfrl2TUFiFVdMv:sqpTiKP4J8mt05CfZp3bhu9Zqp4UsA=="
}
},
"resources": [
{
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
"custom": false,
"type": "pulumi:pulumi:Stack",
"outputs": {
"platforms": [
"plan9/amd64",
"plan9/386"
]
},
"created": "2024-04-25T15:47:59.523578Z",
"modified": "2024-04-25T15:47:59.523578Z"
},
{
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default",
"custom": true,
"id": "1262d75a-1f92-4f7b-8b32-6b5246d188f0",
"type": "pulumi:providers:docker-build",
"inputs": {
"host": ""
},
"outputs": {
"host": ""
},
"created": "2024-04-25T15:47:59.664483Z",
"modified": "2024-04-25T15:47:59.664483Z"
},
{
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext",
"custom": true,
"id": "remoteContext",
"type": "docker-build:index:Image",
"inputs": {
"context": {
"location": "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
},
"dockerfile": {
"inline": "",
"location": ""
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"target": ""
},
"outputs": {
"context": {
"location": "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
},
"contextHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"digest": "",
"dockerfile": {
"inline": "",
"location": ""
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"ref": "",
"target": ""
},
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
"propertyDependencies": {
"context": []
},
"created": "2024-04-25T15:48:00.520476Z",
"modified": "2024-04-25T15:48:00.520476Z"
},
{
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline",
"custom": true,
"id": "inline",
"type": "docker-build:index:Image",
"inputs": {
"context": {
"location": "./app"
},
"dockerfile": {
"inline": "FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n",
"location": ""
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"target": ""
},
"outputs": {
"context": {
"location": "./app"
},
"contextHash": "36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec",
"digest": "",
"dockerfile": {
"inline": "FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n",
"location": ""
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"ref": "",
"target": ""
},
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
"propertyDependencies": {
"context": [],
"dockerfile": []
},
"created": "2024-04-25T15:48:00.542164Z",
"modified": "2024-04-25T15:48:00.542164Z"
},
{
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::target",
"custom": true,
"id": "target",
"type": "docker-build:index:Image",
"inputs": {
"context": {
"location": "./app"
},
"dockerfile": {
"inline": "",
"location": "./app/Dockerfile.target"
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"target": "build-me"
},
"outputs": {
"context": {
"location": "./app"
},
"contextHash": "fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc",
"digest": "",
"dockerfile": {
"inline": "",
"location": "./app/Dockerfile.target"
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"ref": "",
"target": "build-me"
},
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
"propertyDependencies": {
"context": [],
"dockerfile": [],
"target": []
},
"created": "2024-04-25T15:48:00.568397Z",
"modified": "2024-04-25T15:48:00.568397Z"
},
{
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets",
"custom": true,
"id": "secrets",
"type": "docker-build:index:Image",
"inputs": {
"context": {
"location": "./app"
},
"dockerfile": {
"inline": "",
"location": "./app/Dockerfile.secrets"
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"secrets": {
"password": "hunter2"
},
"target": ""
},
"outputs": {
"context": {
"location": "./app"
},
"contextHash": "5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21",
"digest": "",
"dockerfile": {
"inline": "",
"location": "./app/Dockerfile.secrets"
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"ref": "",
"secrets": {
"password": "hunter2"
},
"target": ""
},
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
"propertyDependencies": {
"context": [],
"dockerfile": [],
"secrets": []
},
"created": "2024-04-25T15:48:00.578273Z",
"modified": "2024-04-25T15:48:00.578273Z"
},
{
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount",
"custom": true,
"id": "sshMount",
"type": "docker-build:index:Image",
"inputs": {
"context": {
"location": "./app"
},
"dockerfile": {
"inline": "",
"location": "./app/Dockerfile.sshMount"
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"ssh": [
{
"id": "default"
}
],
"target": ""
},
"outputs": {
"context": {
"location": "./app"
},
"contextHash": "71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9",
"digest": "",
"dockerfile": {
"inline": "",
"location": "./app/Dockerfile.sshMount"
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"ref": "",
"ssh": [
{
"id": "default"
}
],
"target": ""
},
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
"propertyDependencies": {
"context": [],
"dockerfile": [],
"ssh": []
},
"created": "2024-04-25T15:48:00.590119Z",
"modified": "2024-04-25T15:48:00.590119Z"
},
{
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush",
"custom": true,
"id": "sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e",
"type": "docker-build:index:Image",
"inputs": {
"context": {
"location": "./app"
},
"dockerfile": {
"inline": "",
"location": "app/Dockerfile"
},
"exec": false,
"exports": [
{
"disabled": false,
"raw": "",
"registry": {
"compressionLevel": 0,
"danglingNamePrefix": "",
"ociMediaTypes": true,
"push": false
}
}
],
"load": false,
"noCache": false,
"pull": false,
"push": false,
"tags": [
"docker.io/pulumibot/buildkit-e2e:example"
],
"target": ""
},
"outputs": {
"context": {
"location": "./app"
},
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
"digest": "sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e",
"dockerfile": {
"inline": "",
"location": "app/Dockerfile"
},
"exec": false,
"exports": [
{
"disabled": false,
"raw": "",
"registry": {
"compressionLevel": 0,
"danglingNamePrefix": "",
"ociMediaTypes": true,
"push": false
}
}
],
"load": false,
"noCache": false,
"pull": false,
"push": false,
"ref": "docker.io/pulumibot/buildkit-e2e:example@sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e",
"tags": [
"docker.io/pulumibot/buildkit-e2e:example"
],
"target": ""
},
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
"propertyDependencies": {
"context": [],
"exports": [],
"tags": []
},
"created": "2024-04-25T15:48:00.59945Z",
"modified": "2024-04-25T15:48:00.59945Z"
},
{
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached",
"custom": true,
"id": "cached",
"type": "docker-build:index:Image",
"inputs": {
"cacheFrom": [
{
"disabled": false,
"local": {
"digest": "",
"src": "tmp/cache"
},
"raw": ""
}
],
"cacheTo": [
{
"disabled": false,
"local": {
"compressionLevel": 0,
"dest": "tmp/cache",
"mode": "max"
},
"raw": ""
}
],
"context": {
"location": "./app"
},
"dockerfile": {
"inline": "",
"location": "app/Dockerfile"
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"target": ""
},
"outputs": {
"cacheFrom": [
{
"disabled": false,
"local": {
"digest": "",
"src": "tmp/cache"
},
"raw": ""
}
],
"cacheTo": [
{
"disabled": false,
"local": {
"compressionLevel": 0,
"dest": "tmp/cache",
"mode": "max"
},
"raw": ""
}
],
"context": {
"location": "./app"
},
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
"digest": "",
"dockerfile": {
"inline": "",
"location": "app/Dockerfile"
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"ref": "",
"target": ""
},
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
"propertyDependencies": {
"cacheFrom": [],
"cacheTo": [],
"context": []
},
"created": "2024-04-25T15:48:00.616567Z",
"modified": "2024-04-25T15:48:00.616567Z"
},
{
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad",
"custom": true,
"id": "sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040",
"type": "docker-build:index:Image",
"inputs": {
"context": {
"location": "./app"
},
"dockerfile": {
"inline": "",
"location": "app/Dockerfile"
},
"exec": false,
"exports": [
{
"disabled": false,
"docker": {
"compressionLevel": 0,
"dest": "",
"tar": true
},
"raw": ""
}
],
"load": false,
"noCache": false,
"pull": false,
"push": false,
"target": ""
},
"outputs": {
"context": {
"location": "./app"
},
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
"digest": "sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040",
"dockerfile": {
"inline": "",
"location": "app/Dockerfile"
},
"exec": false,
"exports": [
{
"disabled": false,
"docker": {
"compressionLevel": 0,
"dest": "",
"tar": true
},
"raw": ""
}
],
"load": false,
"noCache": false,
"pull": false,
"push": false,
"ref": "",
"target": ""
},
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
"propertyDependencies": {
"context": [],
"exports": []
},
"created": "2024-04-25T15:48:00.629463Z",
"modified": "2024-04-25T15:48:00.629463Z"
},
{
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts",
"custom": true,
"id": "extraHosts",
"type": "docker-build:index:Image",
"inputs": {
"addHosts": [
"metadata.google.internal:169.254.169.254"
],
"context": {
"location": "./app"
},
"dockerfile": {
"inline": "",
"location": "./app/Dockerfile.extraHosts"
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"target": ""
},
"outputs": {
"addHosts": [
"metadata.google.internal:169.254.169.254"
],
"context": {
"location": "./app"
},
"contextHash": "e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712",
"digest": "",
"dockerfile": {
"inline": "",
"location": "./app/Dockerfile.extraHosts"
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"ref": "",
"target": ""
},
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
"propertyDependencies": {
"addHosts": [],
"context": [],
"dockerfile": []
},
"created": "2024-04-25T15:48:00.639744Z",
"modified": "2024-04-25T15:48:00.639744Z"
},
{
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels",
"custom": true,
"id": "labels",
"type": "docker-build:index:Image",
"inputs": {
"context": {
"location": "./app"
},
"dockerfile": {
"inline": "",
"location": "app/Dockerfile"
},
"exec": false,
"labels": {
"description": "This image will get a descriptive label 👍"
},
"load": false,
"noCache": false,
"pull": false,
"push": false,
"target": ""
},
"outputs": {
"context": {
"location": "./app"
},
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
"digest": "",
"dockerfile": {
"inline": "",
"location": "app/Dockerfile"
},
"exec": false,
"labels": {
"description": "This image will get a descriptive label 👍"
},
"load": false,
"noCache": false,
"pull": false,
"push": false,
"ref": "",
"target": ""
},
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
"propertyDependencies": {
"context": [],
"labels": []
},
"created": "2024-04-25T15:48:00.707146Z",
"modified": "2024-04-25T15:48:00.707146Z"
},
{
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs",
"custom": true,
"id": "buildArgs",
"type": "docker-build:index:Image",
"inputs": {
"buildArgs": {
"SET_ME_TO_TRUE": "true"
},
"context": {
"location": "./app"
},
"dockerfile": {
"inline": "",
"location": "./app/Dockerfile.buildArgs"
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"target": ""
},
"outputs": {
"buildArgs": {
"SET_ME_TO_TRUE": "true"
},
"context": {
"location": "./app"
},
"contextHash": "55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381",
"digest": "",
"dockerfile": {
"inline": "",
"location": "./app/Dockerfile.buildArgs"
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"ref": "",
"target": ""
},
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
"propertyDependencies": {
"buildArgs": [],
"context": [],
"dockerfile": []
},
"created": "2024-04-25T15:48:00.713219Z",
"modified": "2024-04-25T15:48:00.713219Z"
},
{
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform",
"custom": true,
"id": "multiPlatform",
"type": "docker-build:index:Image",
"inputs": {
"context": {
"location": "./app"
},
"dockerfile": {
"inline": "",
"location": "./app/Dockerfile.multiPlatform"
},
"exec": false,
"load": false,
"noCache": false,
"platforms": [
"plan9/amd64",
"plan9/386"
],
"pull": false,
"push": false,
"target": ""
},
"outputs": {
"context": {
"location": "./app"
},
"contextHash": "c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755",
"digest": "",
"dockerfile": {
"inline": "",
"location": "./app/Dockerfile.multiPlatform"
},
"exec": false,
"load": false,
"noCache": false,
"platforms": [
"plan9/amd64",
"plan9/386"
],
"pull": false,
"push": false,
"ref": "",
"target": ""
},
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
"propertyDependencies": {
"context": [],
"dockerfile": [],
"platforms": []
},
"created": "2024-04-25T15:48:00.802952Z",
"modified": "2024-04-25T15:48:00.802952Z"
},
{
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts",
"custom": true,
"id": "namedContexts",
"type": "docker-build:index:Image",
"inputs": {
"context": {
"location": "./app",
"named": {
"golang:latest": {
"location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"
}
}
},
"dockerfile": {
"inline": "",
"location": "./app/Dockerfile.namedContexts"
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"target": ""
},
"outputs": {
"context": {
"location": "./app",
"named": {
"golang:latest": {
"location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"
}
}
},
"contextHash": "3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d",
"digest": "",
"dockerfile": {
"inline": "",
"location": "./app/Dockerfile.namedContexts"
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"ref": "",
"target": ""
},
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
"propertyDependencies": {
"context": [],
"dockerfile": []
},
"created": "2024-04-25T15:48:00.82495Z",
"modified": "2024-04-25T15:48:00.82495Z"
},
{
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline",
"custom": true,
"id": "remoteContextWithInline",
"type": "docker-build:index:Image",
"inputs": {
"context": {
"location": "https://github.com/docker-library/hello-world.git"
},
"dockerfile": {
"inline": "FROM busybox\nCOPY hello.c ./\n",
"location": ""
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"target": ""
},
"outputs": {
"context": {
"location": "https://github.com/docker-library/hello-world.git"
},
"contextHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"digest": "",
"dockerfile": {
"inline": "FROM busybox\nCOPY hello.c ./\n",
"location": ""
},
"exec": false,
"load": false,
"noCache": false,
"pull": false,
"push": false,
"ref": "",
"target": ""
},
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
"propertyDependencies": {
"context": [],
"dockerfile": []
},
"created": "2024-04-25T15:48:01.263124Z",
"modified": "2024-04-25T15:48:01.263124Z"
}
]
}
}

View File

@@ -0,0 +1 @@
*

View File

@@ -0,0 +1,19 @@
name: dockerhub-unauthenticated
description: Pull an image from Dockerhub without credentials
runtime: yaml
plugins:
providers:
- name: docker-build
path: ../../../bin
resources:
my-image:
type: docker-build:Image
properties:
tags:
- alpine-local
load: true
push: false
context:
location: .
dockerfile:
inline: FROM alpine

View File

@@ -0,0 +1,187 @@
name: provider-docker-build
runtime: yaml
plugins:
providers:
- name: docker-build
path: ../../bin
resources:
# docker buildx build -f app/Dockerfile.multiPlatform --platform plan9/amd64,plan9/386 app
multiPlatform:
type: docker-build:Image
properties:
push: false
dockerfile:
location: "./app/Dockerfile.multiPlatform"
context:
location: "./app"
platforms:
- plan9/amd64
- plan9/386
# docker buildx build --output=type=registry app
registryPush:
type: docker-build:Image
properties:
push: false
context:
location: "./app"
tags: ["docker.io/pulumibot/buildkit-e2e:example"]
exports:
- registry:
ociMediaTypes: true
push: false # Omit this to actually push images.
# docker buildx build --cache-to=type=local,dest=tmp/cache,mode=max --cache-from=type=local,src=tmp/cache app
cached:
type: docker-build:Image
properties:
push: false
context:
location: "./app"
cacheTo:
- local:
dest: tmp/cache
mode: max
cacheFrom:
- local:
src: tmp/cache
# docker buildx build -f app/Dockerfile.buildArgs --build-arg SET_ME_TO_TRUE=true app
buildArgs:
type: docker-build:Image
properties:
push: false
dockerfile:
location: "./app/Dockerfile.buildArgs"
context:
location: "./app"
buildArgs:
SET_ME_TO_TRUE: "true"
# docker buildx build -f app/Dockerfile.extraHosts --add-host metadata.google.internal:169.254.169.254 app
extraHosts:
type: docker-build:Image
properties:
push: false
dockerfile:
location: "./app/Dockerfile.extraHosts"
context:
location: "./app"
addHosts:
- "metadata.google.internal:169.254.169.254"
# docker buildx build -f app/Dockerfile.sshMount --ssh default app
sshMount:
type: docker-build:Image
properties:
push: false
dockerfile:
location: "./app/Dockerfile.sshMount"
context:
location: "./app"
ssh:
- id: default
# PASSWORD=hunter2 docker buildx build -f app/Dockerfile.secrets --secret id=password,env=PASSWORD app
secrets:
type: docker-build:Image
properties:
push: false
dockerfile:
location: "./app/Dockerfile.secrets"
context:
location: "./app"
secrets:
password: hunter2
# docker buildx build --label "description=This image will get a descriptive label 👍" app
labels:
type: docker-build:Image
properties:
push: false
context:
location: "./app"
labels:
description: "This image will get a descriptive label 👍"
# docker buildx build -f app/Dockerfile.target --target build-me app
target:
type: docker-build:Image
properties:
push: false
dockerfile:
location: "./app/Dockerfile.target"
context:
location: "./app"
target: "build-me"
# docker buildx build -f app/Dockerfile.namedContexts \
# --build-context golang:latest=docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984 app
namedContexts:
type: docker-build:Image
properties:
push: false
dockerfile:
location: "./app/Dockerfile.namedContexts"
context:
location: "./app"
named:
"golang:latest":
location: "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"
# docker buildx build https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile
remoteContext:
type: docker-build:Image
properties:
push: false
context:
location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
# docker buildx build -f - https://github.com/docker-library/hello-world.git <<EOF
# FROM busybox
# COPY hello.c ./
# EOF
remoteContextWithInline:
type: docker-build:Image
properties:
push: false
dockerfile:
inline: |
FROM busybox
COPY hello.c ./
context:
location: "https://github.com/docker-library/hello-world.git"
# echo "FROM alpine" | docker buildx build -f - .
inline:
type: docker-build:Image
properties:
push: false
dockerfile:
inline: |
FROM alpine
RUN echo "This uses an inline Dockerfile! 👍"
context:
location: "./app"
# docker buildx build --load .
dockerLoad:
type: docker-build:Image
properties:
push: false
context:
location: "./app"
exports:
- docker:
tar: true
# docker buildx build - < app/Dockerfile.emptyContext
#emptyContext:
# type: docker-build:Image
# properties:
# file: "app/Dockerfile.emptyContext"
# context: "-"
outputs:
platforms: ${multiPlatform.platforms}

View File

@@ -0,0 +1,15 @@
# YAML Example Program
Test Pulumi program written in YAML for testing this provider locally.
Edit this yaml program to test features of your provider locally. You can run this program using the following command:
```bash
pulumi login
pulumi stack init local
pulumi up
```
Note that unlike the rest of the auto-generated examples in the ./examples directory, this example is not automatically generated. It is intended to be a place for you to test your provider locally.
The remaining examples are language specific examples derived from the `make gen_examples` command supported in this provider's Makefile. These examples are automatically generated and should not be edited directly. To regenerate these examples, run `make gen_examples` in the root of this provider's repository.

View File

@@ -0,0 +1,2 @@
FROM alpine
RUN echo 👍

View File

@@ -0,0 +1,5 @@
FROM alpine
ARG SET_ME_TO_TRUE
RUN [ "$SET_ME_TO_TRUE" = "true" ]
RUN echo "That's the correct build arg, thanks! 👍"

View File

@@ -0,0 +1,2 @@
FROM alpine
RUN echo "This image doesn't use any local files, so it doesn't need a context parameter 👍"

View File

@@ -0,0 +1,3 @@
FROM bash AS base
RUN getent hosts metadata.google.internal

View File

@@ -0,0 +1,7 @@
FROM --platform=$BUILDPLATFORM alpine as build
RUN echo ${BUILDPLATFORM} > buildplatform
RUN echo ${TARGETPLATFORM} > targetplatform
FROM build
RUN cat buildplatform
RUN cat targetplatform

View File

@@ -0,0 +1,5 @@
# syntax=docker/dockerfile:1.4
FROM golang:latest
RUN version="$(go version)" && echo $version && [ "$version" = "go version go1.21.7 linux/amd64" ]
RUN echo "This image uses named contexts to pin golang:latest to a specific SHA 👍"

View File

@@ -0,0 +1,4 @@
FROM alpine
RUN --mount=type=secret,id=password [ "$(cat /run/secrets/password)" = "hunter2" ]

View File

@@ -0,0 +1,5 @@
FROM alpine
RUN apk add openssh-client
RUN --mount=type=ssh ssh-add -l

View File

@@ -0,0 +1,8 @@
FROM alpine as build-me
RUN echo 👍
FROM build-me as also-build-me
RUN echo 🤙
FROM build-me as dont-build-me
RUN [ "true" = "false" ]

View File

@@ -10,6 +10,7 @@ resources:
multiPlatform:
type: docker-build:Image
properties:
push: false
dockerfile:
location: "./app/Dockerfile.multiPlatform"
context:
@@ -22,6 +23,7 @@ resources:
registryPush:
type: docker-build:Image
properties:
push: false
context:
location: "./app"
tags: ["docker.io/pulumibot/buildkit-e2e:example"]
@@ -38,6 +40,7 @@ resources:
cached:
type: docker-build:Image
properties:
push: false
context:
location: "./app"
cacheTo:
@@ -52,6 +55,7 @@ resources:
buildArgs:
type: docker-build:Image
properties:
push: false
dockerfile:
location: "./app/Dockerfile.buildArgs"
context:
@@ -63,6 +67,7 @@ resources:
extraHosts:
type: docker-build:Image
properties:
push: false
dockerfile:
location: "./app/Dockerfile.extraHosts"
context:
@@ -74,6 +79,7 @@ resources:
sshMount:
type: docker-build:Image
properties:
push: false
dockerfile:
location: "./app/Dockerfile.sshMount"
context:
@@ -85,6 +91,7 @@ resources:
secrets:
type: docker-build:Image
properties:
push: false
dockerfile:
location: "./app/Dockerfile.secrets"
context:
@@ -96,6 +103,7 @@ resources:
labels:
type: docker-build:Image
properties:
push: false
context:
location: "./app"
labels:
@@ -105,6 +113,7 @@ resources:
target:
type: docker-build:Image
properties:
push: false
dockerfile:
location: "./app/Dockerfile.target"
context:
@@ -116,6 +125,7 @@ resources:
namedContexts:
type: docker-build:Image
properties:
push: false
dockerfile:
location: "./app/Dockerfile.namedContexts"
context:
@@ -128,6 +138,7 @@ resources:
remoteContext:
type: docker-build:Image
properties:
push: false
context:
location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
@@ -138,6 +149,7 @@ resources:
remoteContextWithInline:
type: docker-build:Image
properties:
push: false
dockerfile:
inline: |
FROM busybox
@@ -149,6 +161,7 @@ resources:
inline:
type: docker-build:Image
properties:
push: false
dockerfile:
inline: |
FROM alpine
@@ -160,6 +173,7 @@ resources:
dockerLoad:
type: docker-build:Image
properties:
push: false
context:
location: "./app"
exports:

View File

@@ -6,8 +6,11 @@ package examples
import (
"os"
"path"
"path/filepath"
"testing"
"github.com/pulumi/providertest"
"github.com/pulumi/pulumi-docker-build/provider"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/require"
)
@@ -26,6 +29,28 @@ func TestYAMLExample(t *testing.T) {
integration.ProgramTest(t, &test)
}
func TestYAMLExampleUpgrade(t *testing.T) {
// t.Setenv("PULUMI_PROVIDER_TEST_MODE", "snapshot")
cwd, err := os.Getwd()
require.NoError(t, err)
bin, err := filepath.Abs("../bin")
require.NoError(t, err)
t.Setenv("PATH", bin+":"+os.Getenv("PATH"))
p, err := provider.New(nil)
require.NoError(t, err)
test := providertest.NewProviderTest(path.Join(cwd, "upgrade"),
providertest.WithProviderName("docker-build"),
providertest.WithBaselineVersion("0.0.1"),
providertest.WithResourceProviderServer(p),
// providertest.WithConfig("dockerHubPassword", os.Getenv("DOCKER_HUB_PASSWORD")), // Doesn't support secrets yet.
)
test.Run(t)
}
func TestECR(t *testing.T) {
if os.Getenv("AWS_SESSION_TOKEN") == "" {
t.Skip("Missing AWS credentials")
@@ -58,3 +83,14 @@ func TestDockerHub(t *testing.T) {
integration.ProgramTest(t, &test)
}
func TestDockerHubUnauthenticated(t *testing.T) {
cwd, err := os.Getwd()
require.NoError(t, err)
test := integration.ProgramTestOptions{
Dir: path.Join(cwd, "tests/unauthenticated"),
}
integration.ProgramTest(t, &test)
}

5
go.mod
View File

@@ -14,7 +14,7 @@ require (
github.com/moby/patternmatcher v0.6.0
github.com/muesli/reflow v0.3.0
github.com/otiai10/copy v1.14.0
github.com/pulumi/pulumi-go-provider v0.15.0
github.com/pulumi/pulumi-go-provider v0.16.0
github.com/pulumi/pulumi-go-provider/integration v0.10.1-0.20240314105842-9fbffb634faf
github.com/pulumi/pulumi-java/pkg v0.10.0
github.com/pulumi/pulumi/pkg/v3 v3.113.0
@@ -322,6 +322,7 @@ require (
github.com/nishanths/exhaustive v0.12.0 // indirect
github.com/nishanths/predeclared v0.2.2 // indirect
github.com/nunnatsa/ginkgolinter v0.16.1 // indirect
github.com/nxadm/tail v1.4.11 // indirect
github.com/oklog/run v1.1.0 // indirect
github.com/olekukonko/tablewriter v0.0.5 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
@@ -349,6 +350,7 @@ require (
github.com/prometheus/procfs v0.12.0 // indirect
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
github.com/pulumi/esc v0.6.2 // indirect
github.com/pulumi/providertest v0.0.12 // indirect
github.com/pulumi/pulumi-yaml v1.6.0 // indirect
github.com/quasilyte/go-ruleguard v0.4.2 // indirect
github.com/quasilyte/gogrep v0.5.0 // indirect
@@ -471,6 +473,7 @@ require (
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/square/go-jose.v2 v2.6.0 // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
honnef.co/go/tools v0.4.7 // indirect

9
go.sum
View File

@@ -2075,6 +2075,8 @@ github.com/nunnatsa/ginkgolinter v0.16.1 h1:uDIPSxgVHZ7PgbJElRDGzymkXH+JaF7mjew+
github.com/nunnatsa/ginkgolinter v0.16.1/go.mod h1:4tWRinDN1FeJgU+iJANW/kz7xKN5nYRAOfJDQUS9dOQ=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY=
github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc=
github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs=
github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA=
@@ -2306,8 +2308,10 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE=
github.com/pulumi/esc v0.6.2 h1:+z+l8cuwIauLSwXQS0uoI3rqB+YG4SzsZYtHfNoXBvw=
github.com/pulumi/esc v0.6.2/go.mod h1:jNnYNjzsOgVTjCp0LL24NsCk8ZJxq4IoLQdCT0X7l8k=
github.com/pulumi/pulumi-go-provider v0.15.0 h1:KEFQhAVHMCbu9NPNe584mtlgZXaqnuDpcWarUcGbQ5w=
github.com/pulumi/pulumi-go-provider v0.15.0/go.mod h1:q3gz5HmArwNALbFihAt1vpg/1xpZlAKjB6A6uMsTgfw=
github.com/pulumi/providertest v0.0.12 h1:UjcFQHHs4AGJyJqxhvC2q8yVQ7Li+UyCyP95HZcK03U=
github.com/pulumi/providertest v0.0.12/go.mod h1:REAoaN+hGOtdWJGirfWYqcSjCejlbGfzyVTUuemJTuE=
github.com/pulumi/pulumi-go-provider v0.16.0 h1:vLAiECprIoLdTPd0UFs9Vv/HgSw7l/SBAurRBm3vpSU=
github.com/pulumi/pulumi-go-provider v0.16.0/go.mod h1:2yjjeyMSmsb/o/BRJeWk+kcXrJWF5U2EulJKnN7qVLs=
github.com/pulumi/pulumi-go-provider/integration v0.10.1-0.20240314105842-9fbffb634faf h1:7fDWArOUFH+qQ9EywoC4K2ElXP76Ks/CtVJkEBmv2pk=
github.com/pulumi/pulumi-go-provider/integration v0.10.1-0.20240314105842-9fbffb634faf/go.mod h1:sf87soow+4JkV361vHI0W04hpJmWiWajzJytFMNonCE=
github.com/pulumi/pulumi-java/pkg v0.10.0 h1:D1i5MiiNrxYr2uJ1szcj1aQwF9DYv7TTsPmajB9dKSw=
@@ -3666,6 +3670,7 @@ gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76
gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI=
gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
gopkg.in/telebot.v3 v3.0.0/go.mod h1:7rExV8/0mDDNu9epSrDm/8j22KLaActH1Tbee6YjzWg=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=

File diff suppressed because one or more lines are too long

View File

@@ -81,6 +81,9 @@ func wrap(host *host, registries ...Registry) (*cli, error) {
auths := map[string]cfgtypes.AuthConfig{}
for k, v := range host.auths {
if k != config.DockerRegistryAuth {
k = credentials.ConvertToHostname(k)
}
auths[k] = cfgtypes.AuthConfig{
ServerAddress: v.ServerAddress,
Username: v.Username,
@@ -95,10 +98,6 @@ func wrap(host *host, registries ...Registry) (*cli, error) {
if key == "" {
key = h.Hostname
}
// Add a scheme if it's missing.
if !strings.Contains(key, "://") {
key = "https://" + key
}
auths[key] = cfgtypes.AuthConfig{
ServerAddress: h.Hostname,
@@ -179,8 +178,12 @@ func (c *cli) tail(ctx provider.Context) {
if c.dumplogs {
// Persist the full Docker output on error for easier debugging.
ctx.Log(diag.Info, b.String())
ctx.Log(diag.Error, c.err.String())
if b.Len() > 0 {
ctx.Log(diag.Info, b.String())
}
if c.err.Len() > 0 {
ctx.Log(diag.Error, c.err.String())
}
}
}

View File

@@ -43,6 +43,10 @@ func TestExec(t *testing.T) {
func TestWrappedAuth(t *testing.T) {
t.Parallel()
ecr := "https://1234.dkr.ecr.us-west-2.amazonaws.com"
realhost, err := newHost(nil)
require.NoError(t, err)
h := &host{
auths: map[string]types.AuthConfig{
ecr: {
@@ -50,7 +54,7 @@ func TestWrappedAuth(t *testing.T) {
Password: "host-aws-password",
ServerAddress: ecr,
},
"misc": {
"https://misc": { // Legacy config includes http/https scheme.
Username: "host-misc-user",
Password: "host-misc-password",
ServerAddress: "misc",
@@ -71,25 +75,34 @@ func TestWrappedAuth(t *testing.T) {
},
}
_, err = wrap(h, registries...)
require.NoError(t, err)
cli, err := wrap(h, registries...)
require.NoError(t, err)
require.Contains(t, cli.auths, ecr)
aws := cli.auths[ecr]
assert.Equal(t, "resource-aws-user", aws.Username)
assert.Equal(t, "resource-aws-password", aws.Password)
assert.Equal(t, "1234.dkr.ecr.us-west-2.amazonaws.com", aws.ServerAddress)
expected := map[string]types.AuthConfig{
"1234.dkr.ecr.us-west-2.amazonaws.com": {
Username: "resource-aws-user",
Password: "resource-aws-password",
ServerAddress: "1234.dkr.ecr.us-west-2.amazonaws.com",
},
config.DockerRegistryAuth: {
Username: "resource-dockerhub-user",
Password: "resource-dockerhub-password",
ServerAddress: config.DockerRegistryDNS,
},
"misc": {
Username: "host-misc-user",
Password: "host-misc-password",
ServerAddress: "misc",
},
}
assert.Equal(t, expected, cli.auths)
assert.Len(t, h.auths, 2) // In-memory host auth is unchanged.
require.Contains(t, cli.auths, config.DockerRegistryAuth)
dockerhub := cli.auths[config.DockerRegistryAuth]
assert.Equal(t, "resource-dockerhub-user", dockerhub.Username)
assert.Equal(t, "resource-dockerhub-password", dockerhub.Password)
assert.Equal(t, config.DockerRegistryDNS, dockerhub.ServerAddress)
// Auths derived from the host should be untouched, e.g. no scheme added, etc.
require.Contains(t, cli.auths, "misc")
misc := cli.auths["misc"]
assert.Equal(t, "host-misc-user", misc.Username)
assert.Equal(t, "host-misc-password", misc.Password)
assert.Equal(t, "misc", misc.ServerAddress)
// Assert that our on-disk host's auth is untouched.
realhostRefreshed, err := newHost(nil)
require.NoError(t, err)
assert.Equal(t, realhost.auths, realhostRefreshed.auths)
}

View File

@@ -323,7 +323,7 @@ func TestInspect(t *testing.T) {
t.Parallel()
cli := testcli(t, false)
descriptors, err := cli.Inspect(context.Background(), "pulumibot/myapp:buildx")
assert.NoError(t, err)
require.NoError(t, err)
assert.Equal(
t,
"application/vnd.docker.distribution.manifest.v2+json",

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
## Migrating v3 and v4 Image resources
## Migrating Pulumi Docker v3 and v4 Image resources
The `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
This provider's `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
Existing `Image` resources can be converted to the docker-build `Image` resources with minor modifications.
### Behavioral differences
@@ -14,19 +14,17 @@ This is helpful as a safeguard to prevent "broken" images from merging, but user
Version `4.x` changed build-on-preview behavior to be opt-in.
By default, `v4.x` `Image` resources do _not_ build during previews, but this behavior can be toggled with the `buildOnPreview` option.
Some users felt this made previews in CI less helpful because they no longer detected bad images by default.
Several users reported outages due to the default behavior allowing bad images to accidentally sneak through CI.
The default behavior of the `Image` resource has been changed to strike a better balance between CI use cases and manual updates.
By default, Pulumi will now only build `Image` resources during previews when it detects a CI environment like GitHub Actions.
Previews run in non-CI environments will not build images.
This behavior is still configurable with `buildOnPreview`.
The default behavior of this provider's `Image` resource is similar to `3.x` and will build images during previews.
This behavior can be changed by specifying `buildOnPreview`.
#### Push behavior
Versions `3.x` and `4.x` of the Pulumi Docker provider attempt to push images to remote registries by default.
They expose a `skipPush: true` option to disable pushing.
The `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
This provider's `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
To push images to a registry you can include `push: true` (equivalent to Docker's `--push` flag) or configure an `export` of type `registry` (equivalent to Docker's `--output type=registry`).
Like Docker, if an image is configured without exports you will see a warning with instructions for how to enable pushing, but the build will still proceed normally.
@@ -146,7 +144,7 @@ const v3Migrated = new dockerbuild.Image("v3-to-buildx", {
context: {
location: "../app",
},
targets: ["mytarget"],
target: "mytarget",
buildArgs: {
MY_BUILD_ARG: "foo",
},
@@ -205,7 +203,7 @@ const v4Migrated = new dockerbuild.Image("v4-to-buildx", {
context: {
location: "../app",
},
targets: ["mytarget"],
target: "mytarget",
buildArgs: {
MY_BUILD_ARG: "foo",
},

View File

@@ -40,7 +40,7 @@ import (
"github.com/pulumi/pulumi-go-provider/infer"
"github.com/pulumi/pulumi/sdk/v3/go/common/diag"
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
"github.com/pulumi/pulumi/sdk/v3/go/common/util/ciutil"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
var (
@@ -72,16 +72,10 @@ func (i *Image) Annotate(a infer.Annotator) {
## Stability
**This resource is experimental and subject to change.**
**This resource is pre-1.0 and in public preview.**
API types are unstable. Subsequent releases _may_ require manual edits
to your state file(s) in order to adopt API changes.
"retainOnDelete: true" is recommended with this resource until it is
stable. This enables future API changes to be adopted more easily by renaming
resources.
Only use this resource if you understand and accept the risks.
We will strive to keep APIs and behavior as stable as possible, but we
cannot guarantee stability until version 1.0.
`)+
"\n\n"+_migration+
"\n\n"+_imageExamples,
@@ -105,7 +99,7 @@ type ImageArgs struct {
NoCache bool `pulumi:"noCache,optional"`
Platforms []Platform `pulumi:"platforms,optional"`
Pull bool `pulumi:"pull,optional"`
Push bool `pulumi:"push,optional"`
Push bool `pulumi:"push"`
Registries []Registry `pulumi:"registries,optional"`
Secrets map[string]string `pulumi:"secrets,optional"`
SSH []SSH `pulumi:"ssh,optional"`
@@ -133,21 +127,19 @@ func (ia *ImageArgs) Annotate(a infer.Annotator) {
Equivalent to Docker's "--build-arg" flag.
`))
a.Describe(&ia.BuildOnPreview, dedent(`
By default, preview behavior depends on the execution environment. If
Pulumi detects the operation is running on a CI system (GitHub Actions,
Travis CI, Azure Pipelines, etc.) then it will build images during
previews as a safeguard. Otherwise, if not running on CI, previews will
not build images.
Setting this to "false" forces previews to never perform builds, and
setting it to "true" will always build the image during previews.
Setting this to "false" will always skip image builds during previews,
and setting it to "true" will always build images during previews.
Images built during previews are never exported to registries, however
cache manifests are still exported.
On-disk Dockerfiles are always validated for syntactic correctness
regardless of this setting.
Defaults to "true" as a safeguard against broken images merging as part
of CI pipelines.
`))
a.SetDefault(&ia.BuildOnPreview, pulumi.Bool(true))
a.Describe(&ia.Builder, dedent(`
Builder configuration.
`))
@@ -463,13 +455,12 @@ func (ia *ImageArgs) isExported() bool {
}
// shouldBuildOnPreview returns true if we should build this image during
// previews. In CI environments we default to building during previews, but we
// always respect buildOnPreview if it was specified.
// previews.
func (ia *ImageArgs) shouldBuildOnPreview() bool {
if ia.BuildOnPreview != nil {
return *ia.BuildOnPreview
}
return ciutil.IsCI()
return true
}
type build struct {
@@ -898,7 +889,7 @@ func (*Image) Diff(
if !reflect.DeepEqual(olds.BuildArgs, news.BuildArgs) {
diff["buildArgs"] = update
}
if olds.BuildOnPreview != news.BuildOnPreview {
if !reflect.DeepEqual(olds.BuildOnPreview, news.BuildOnPreview) {
diff["buildOnPreview"] = update
}
if !reflect.DeepEqual(olds.Builder, news.Builder) {
@@ -916,11 +907,9 @@ func (*Image) Diff(
if !reflect.DeepEqual(olds.Context.Named, news.Context.Named) {
diff["context.named"] = update
}
if olds.Dockerfile.Location != news.Dockerfile.Location {
diff["dockerfile.location"] = update
}
if olds.Dockerfile.Inline != news.Dockerfile.Inline {
diff["dockerfile.inline"] = update
dockerfile, _, _ := news.Context.validate(true, news.Dockerfile)
if !reflect.DeepEqual(olds.Dockerfile, dockerfile) {
diff["dockerfile"] = update
}
// Use string comparison to ignore any manifests attached to the export.
if fmt.Sprint(olds.Exports) != fmt.Sprint(news.Exports) {
@@ -941,10 +930,10 @@ func (*Image) Diff(
if !reflect.DeepEqual(olds.Platforms, news.Platforms) {
diff["platforms"] = update
}
if olds.Pull != news.Pull {
if !reflect.DeepEqual(olds.Pull, news.Pull) {
diff["pull"] = update
}
if olds.Push != news.Push {
if !reflect.DeepEqual(olds.Push, news.Push) {
diff["push"] = update
}
if !reflect.DeepEqual(olds.Secrets, news.Secrets) {
@@ -969,7 +958,7 @@ func (*Image) Diff(
// Check if anything has changed in our build context.
hash, err := hashBuildContext(
news.Context.Location,
news.Dockerfile.Location,
dockerfile.Location,
news.Context.Named.Map(),
)
if err != nil {

View File

@@ -82,6 +82,7 @@ func TestImageLifecycle(t *testing.T) {
op: func(t *testing.T) integration.Operation {
return integration.Operation{
Inputs: resource.PropertyMap{
"push": resource.NewBoolProperty(false),
"tags": resource.NewArrayProperty(
[]resource.PropertyValue{
resource.NewStringProperty("docker.io/pulumibot/buildkit-e2e"),
@@ -129,6 +130,7 @@ func TestImageLifecycle(t *testing.T) {
op: func(t *testing.T) integration.Operation {
return integration.Operation{
Inputs: resource.PropertyMap{
"push": resource.NewBoolProperty(false),
"tags": resource.NewArrayProperty([]resource.PropertyValue{}),
"context": resource.NewObjectProperty(resource.PropertyMap{
"location": resource.NewStringProperty("testdata/noop"),
@@ -157,6 +159,7 @@ func TestImageLifecycle(t *testing.T) {
op: func(t *testing.T) integration.Operation {
return integration.Operation{
Inputs: resource.PropertyMap{
"push": resource.NewBoolProperty(false),
"tags": resource.NewArrayProperty(
[]resource.PropertyValue{resource.NewStringProperty("invalid-exports")},
),
@@ -189,6 +192,7 @@ func TestImageLifecycle(t *testing.T) {
op: func(t *testing.T) integration.Operation {
return integration.Operation{
Inputs: resource.PropertyMap{
"push": resource.NewBoolProperty(false),
"tags": resource.NewArrayProperty(
[]resource.PropertyValue{resource.NewStringProperty("foo")},
),
@@ -215,6 +219,7 @@ func TestImageLifecycle(t *testing.T) {
op: func(t *testing.T) integration.Operation {
return integration.Operation{
Inputs: resource.PropertyMap{
"push": resource.NewBoolProperty(false),
"tags": resource.NewArrayProperty(
[]resource.PropertyValue{resource.NewStringProperty("foo")},
),
@@ -246,6 +251,7 @@ func TestImageLifecycle(t *testing.T) {
op: func(t *testing.T) integration.Operation {
return integration.Operation{
Inputs: resource.PropertyMap{
"push": resource.NewBoolProperty(false),
"tags": resource.NewArrayProperty(
[]resource.PropertyValue{
resource.NewStringProperty("default-dockerfile"),
@@ -518,7 +524,7 @@ func TestImageDiff(t *testing.T) {
wantChanges: true,
},
{
name: "diff if buildOnPreview changes",
name: "diff if buildOnPreview doesn't change",
olds: func(*testing.T, ImageState) ImageState { return baseState },
news: func(t *testing.T, ia ImageArgs) ImageArgs {
val := true
@@ -527,6 +533,16 @@ func TestImageDiff(t *testing.T) {
},
wantChanges: true,
},
{
name: "diff if buildOnPreview changes",
olds: func(*testing.T, ImageState) ImageState { return baseState },
news: func(t *testing.T, ia ImageArgs) ImageArgs {
val := false
ia.BuildOnPreview = &val
return ia
},
wantChanges: true,
},
{
name: "diff if ssh changes",
olds: func(*testing.T, ImageState) ImageState { return baseState },

View File

@@ -64,13 +64,25 @@ type IndexState struct {
// Annotate sets docstrings and defaults on Index.
func (i *Index) Annotate(a infer.Annotator) {
a.Describe(&i, dedent(`
An index (or manifest list) referencing one or more existing images.
A wrapper around "docker buildx imagetools create" to create an index
(or manifest list) referencing one or more existing images.
Useful for crafting a multi-platform image from several
platform-specific images.
In most cases you do not need an "Index" to build a multi-platform
image -- specifying multiple platforms on the "Image" will handle this
for you automatically.
This creates an OCI image index or a Docker manifest list depending on
the media types of the source images.
However, as of April 2024, building multi-platform images _with
caching_ will only export a cache for one platform at a time (see [this
discussion](https://github.com/docker/buildx/discussions/1382) for more
details).
Therefore this resource can be helpful if you are building
multi-platform images with caching: each platform can be built and
cached separately, and an "Index" can join them all together. An
example of this is shown below.
This resource creates an OCI image index or a Docker manifest list
depending on the media types of the source images.
`)+
"\n\n"+_indexExamples,
)

View File

@@ -69,14 +69,13 @@ func NewBuildxProvider() provider.Provider {
return infer.Provider(
infer.Options{
Metadata: pschema.Metadata{
DisplayName: "docker-build",
Keywords: []string{"docker", "buildkit", "buildx"},
Description: "A Pulumi provider for Docker buildx",
Homepage: "https://pulumi.io",
Publisher: "pulumi",
License: "Apache-2.0",
Repository: "https://github.com/pulumi/pulumi-docker-build",
PluginDownloadURL: "github.com/pulumi/pulumi-docker-build",
DisplayName: "docker-build",
Keywords: []string{"docker", "buildkit", "buildx", "kind/native"},
Description: "A Pulumi provider for building modern Docker images with buildx and BuildKit.",
Homepage: "https://pulumi.com",
Publisher: "pulumi",
License: "Apache-2.0",
Repository: "https://github.com/pulumi/pulumi-docker-build",
LanguageMap: map[string]any{
"go": gogen.GoPackageInfo{
// GenerateResourceContainerTypes: true,

View File

@@ -27,7 +27,7 @@ import (
)
// Version is initialized by the Go linker to contain the semver of this build.
var Version string
var Version = "0.0.1"
// Name needs to match $PACK in Makefile.
const Name string = "docker-build"
@@ -62,7 +62,7 @@ func (p configurableProvider) Configure(
ctx context.Context,
request *rpc.ConfigureRequest,
) (*rpc.ConfigureResponse, error) {
schema := internal.Schema(ctx, "")
schema := internal.Schema(ctx, Version)
ce := deprecated.New(schema.Config)
buildxReq := request
if props, err := ce.UnmarshalProperties(request.Args); err == nil {

View File

@@ -18,8 +18,10 @@ import (
"context"
"testing"
"github.com/blang/semver"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
emptypb "google.golang.org/protobuf/types/known/emptypb"
"google.golang.org/protobuf/types/known/structpb"
pulumirpc "github.com/pulumi/pulumi/sdk/v3/proto/go"
@@ -48,3 +50,19 @@ func TestConfigure(t *testing.T) {
assert.NoError(t, err)
}
func TestVersion(t *testing.T) {
t.Parallel()
_, err := semver.Parse(Version)
assert.NoError(t, err)
p, err := New(nil)
require.NoError(t, err)
info, err := p.GetPluginInfo(context.Background(), &emptypb.Empty{})
assert.NoError(t, err)
require.NotEqual(t, "", Version)
assert.Equal(t, Version, info.Version)
}

View File

@@ -1 +1 @@
A Pulumi provider for Docker buildx
A Pulumi provider for building modern Docker images with buildx and BuildKit.

182
sdk/dotnet/Image.cs generated
View File

@@ -15,20 +15,14 @@ namespace Pulumi.DockerBuild
///
/// ## Stability
///
/// **This resource is experimental and subject to change.**
/// **This resource is pre-1.0 and in public preview.**
///
/// API types are unstable. Subsequent releases _may_ require manual edits
/// to your state file(s) in order to adopt API changes.
/// We will strive to keep APIs and behavior as stable as possible, but we
/// cannot guarantee stability until version 1.0.
///
/// `retainOnDelete: true` is recommended with this resource until it is
/// stable. This enables future API changes to be adopted more easily by renaming
/// resources.
/// ## Migrating Pulumi Docker v3 and v4 Image resources
///
/// Only use this resource if you understand and accept the risks.
///
/// ## Migrating v3 and v4 Image resources
///
/// The `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
/// This provider's `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
/// Existing `Image` resources can be converted to the docker-build `Image` resources with minor modifications.
///
/// ### Behavioral differences
@@ -42,19 +36,17 @@ namespace Pulumi.DockerBuild
///
/// Version `4.x` changed build-on-preview behavior to be opt-in.
/// By default, `v4.x` `Image` resources do _not_ build during previews, but this behavior can be toggled with the `buildOnPreview` option.
/// Some users felt this made previews in CI less helpful because they no longer detected bad images by default.
/// Several users reported outages due to the default behavior allowing bad images to accidentally sneak through CI.
///
/// The default behavior of the `Image` resource has been changed to strike a better balance between CI use cases and manual updates.
/// By default, Pulumi will now only build `Image` resources during previews when it detects a CI environment like GitHub Actions.
/// Previews run in non-CI environments will not build images.
/// This behavior is still configurable with `buildOnPreview`.
/// The default behavior of this provider's `Image` resource is similar to `3.x` and will build images during previews.
/// This behavior can be changed by specifying `buildOnPreview`.
///
/// #### Push behavior
///
/// Versions `3.x` and `4.x` of the Pulumi Docker provider attempt to push images to remote registries by default.
/// They expose a `skipPush: true` option to disable pushing.
///
/// The `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
/// This provider's `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
///
/// To push images to a registry you can include `push: true` (equivalent to Docker's `--push` flag) or configure an `export` of type `registry` (equivalent to Docker's `--output type=registry`).
/// Like Docker, if an image is configured without exports you will see a warning with instructions for how to enable pushing, but the build will still proceed normally.
@@ -127,7 +119,7 @@ namespace Pulumi.DockerBuild
/// using System.Linq;
/// using Pulumi;
/// using Aws = Pulumi.Aws;
/// using Dockerbuild = Pulumi.Dockerbuild;
/// using DockerBuild = Pulumi.DockerBuild;
///
/// return await Deployment.RunAsync(() =&gt;
/// {
@@ -138,13 +130,13 @@ namespace Pulumi.DockerBuild
/// RegistryId = ecrRepository.RegistryId,
/// });
///
/// var myImage = new Dockerbuild.Image("my-image", new()
/// var myImage = new DockerBuild.Image("my-image", new()
/// {
/// CacheFrom = new[]
/// {
/// new Dockerbuild.Inputs.CacheFromArgs
/// new DockerBuild.Inputs.CacheFromArgs
/// {
/// Registry = new Dockerbuild.Inputs.CacheFromRegistryArgs
/// Registry = new DockerBuild.Inputs.CacheFromRegistryArgs
/// {
/// Ref = ecrRepository.RepositoryUrl.Apply(repositoryUrl =&gt; $"{repositoryUrl}:cache"),
/// },
@@ -152,9 +144,9 @@ namespace Pulumi.DockerBuild
/// },
/// CacheTo = new[]
/// {
/// new Dockerbuild.Inputs.CacheToArgs
/// new DockerBuild.Inputs.CacheToArgs
/// {
/// Registry = new Dockerbuild.Inputs.CacheToRegistryArgs
/// Registry = new DockerBuild.Inputs.CacheToRegistryArgs
/// {
/// ImageManifest = true,
/// OciMediaTypes = true,
@@ -162,14 +154,14 @@ namespace Pulumi.DockerBuild
/// },
/// },
/// },
/// Context = new Dockerbuild.Inputs.BuildContextArgs
/// Context = new DockerBuild.Inputs.BuildContextArgs
/// {
/// Location = "./app",
/// },
/// Push = true,
/// Registries = new[]
/// {
/// new Dockerbuild.Inputs.RegistryArgs
/// new DockerBuild.Inputs.RegistryArgs
/// {
/// Address = ecrRepository.RepositoryUrl,
/// Password = authToken.Apply(getAuthorizationTokenResult =&gt; getAuthorizationTokenResult.Password),
@@ -194,21 +186,22 @@ namespace Pulumi.DockerBuild
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using Dockerbuild = Pulumi.Dockerbuild;
/// using DockerBuild = Pulumi.DockerBuild;
///
/// return await Deployment.RunAsync(() =&gt;
/// {
/// var image = new Dockerbuild.Image("image", new()
/// var image = new DockerBuild.Image("image", new()
/// {
/// Context = new Dockerbuild.Inputs.BuildContextArgs
/// Context = new DockerBuild.Inputs.BuildContextArgs
/// {
/// Location = "app",
/// },
/// Platforms = new[]
/// {
/// Dockerbuild.Platform.Plan9_amd64,
/// Dockerbuild.Platform.Plan9_386,
/// DockerBuild.Platform.Plan9_amd64,
/// DockerBuild.Platform.Plan9_386,
/// },
/// Push = false,
/// });
///
/// });
@@ -219,20 +212,20 @@ namespace Pulumi.DockerBuild
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using Dockerbuild = Pulumi.Dockerbuild;
/// using DockerBuild = Pulumi.DockerBuild;
///
/// return await Deployment.RunAsync(() =&gt;
/// {
/// var image = new Dockerbuild.Image("image", new()
/// var image = new DockerBuild.Image("image", new()
/// {
/// Context = new Dockerbuild.Inputs.BuildContextArgs
/// Context = new DockerBuild.Inputs.BuildContextArgs
/// {
/// Location = "app",
/// },
/// Push = true,
/// Registries = new[]
/// {
/// new Dockerbuild.Inputs.RegistryArgs
/// new DockerBuild.Inputs.RegistryArgs
/// {
/// Address = "docker.io",
/// Password = dockerHubPassword,
@@ -257,17 +250,17 @@ namespace Pulumi.DockerBuild
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using Dockerbuild = Pulumi.Dockerbuild;
/// using DockerBuild = Pulumi.DockerBuild;
///
/// return await Deployment.RunAsync(() =&gt;
/// {
/// var image = new Dockerbuild.Image("image", new()
/// var image = new DockerBuild.Image("image", new()
/// {
/// CacheFrom = new[]
/// {
/// new Dockerbuild.Inputs.CacheFromArgs
/// new DockerBuild.Inputs.CacheFromArgs
/// {
/// Local = new Dockerbuild.Inputs.CacheFromLocalArgs
/// Local = new DockerBuild.Inputs.CacheFromLocalArgs
/// {
/// Src = "tmp/cache",
/// },
@@ -275,19 +268,20 @@ namespace Pulumi.DockerBuild
/// },
/// CacheTo = new[]
/// {
/// new Dockerbuild.Inputs.CacheToArgs
/// new DockerBuild.Inputs.CacheToArgs
/// {
/// Local = new Dockerbuild.Inputs.CacheToLocalArgs
/// Local = new DockerBuild.Inputs.CacheToLocalArgs
/// {
/// Dest = "tmp/cache",
/// Mode = Dockerbuild.CacheMode.Max,
/// Mode = DockerBuild.CacheMode.Max,
/// },
/// },
/// },
/// Context = new Dockerbuild.Inputs.BuildContextArgs
/// Context = new DockerBuild.Inputs.BuildContextArgs
/// {
/// Location = "app",
/// },
/// Push = false,
/// });
///
/// });
@@ -298,21 +292,22 @@ namespace Pulumi.DockerBuild
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using Dockerbuild = Pulumi.Dockerbuild;
/// using DockerBuild = Pulumi.DockerBuild;
///
/// return await Deployment.RunAsync(() =&gt;
/// {
/// var image = new Dockerbuild.Image("image", new()
/// var image = new DockerBuild.Image("image", new()
/// {
/// Builder = new Dockerbuild.Inputs.BuilderConfigArgs
/// Builder = new DockerBuild.Inputs.BuilderConfigArgs
/// {
/// Name = "cloud-builder-name",
/// },
/// Context = new Dockerbuild.Inputs.BuildContextArgs
/// Context = new DockerBuild.Inputs.BuildContextArgs
/// {
/// Location = "app",
/// },
/// Exec = true,
/// Push = false,
/// });
///
/// });
@@ -323,20 +318,21 @@ namespace Pulumi.DockerBuild
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using Dockerbuild = Pulumi.Dockerbuild;
/// using DockerBuild = Pulumi.DockerBuild;
///
/// return await Deployment.RunAsync(() =&gt;
/// {
/// var image = new Dockerbuild.Image("image", new()
/// var image = new DockerBuild.Image("image", new()
/// {
/// BuildArgs =
/// {
/// { "SET_ME_TO_TRUE", "true" },
/// },
/// Context = new Dockerbuild.Inputs.BuildContextArgs
/// Context = new DockerBuild.Inputs.BuildContextArgs
/// {
/// Location = "app",
/// },
/// Push = false,
/// });
///
/// });
@@ -347,16 +343,17 @@ namespace Pulumi.DockerBuild
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using Dockerbuild = Pulumi.Dockerbuild;
/// using DockerBuild = Pulumi.DockerBuild;
///
/// return await Deployment.RunAsync(() =&gt;
/// {
/// var image = new Dockerbuild.Image("image", new()
/// var image = new DockerBuild.Image("image", new()
/// {
/// Context = new Dockerbuild.Inputs.BuildContextArgs
/// Context = new DockerBuild.Inputs.BuildContextArgs
/// {
/// Location = "app",
/// },
/// Push = false,
/// Target = "build-me",
/// });
///
@@ -368,23 +365,24 @@ namespace Pulumi.DockerBuild
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using Dockerbuild = Pulumi.Dockerbuild;
/// using DockerBuild = Pulumi.DockerBuild;
///
/// return await Deployment.RunAsync(() =&gt;
/// {
/// var image = new Dockerbuild.Image("image", new()
/// var image = new DockerBuild.Image("image", new()
/// {
/// Context = new Dockerbuild.Inputs.BuildContextArgs
/// Context = new DockerBuild.Inputs.BuildContextArgs
/// {
/// Location = "app",
/// Named =
/// {
/// { "golang:latest", new Dockerbuild.Inputs.ContextArgs
/// { "golang:latest", new DockerBuild.Inputs.ContextArgs
/// {
/// Location = "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
/// } },
/// },
/// },
/// Push = false,
/// });
///
/// });
@@ -395,16 +393,17 @@ namespace Pulumi.DockerBuild
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using Dockerbuild = Pulumi.Dockerbuild;
/// using DockerBuild = Pulumi.DockerBuild;
///
/// return await Deployment.RunAsync(() =&gt;
/// {
/// var image = new Dockerbuild.Image("image", new()
/// var image = new DockerBuild.Image("image", new()
/// {
/// Context = new Dockerbuild.Inputs.BuildContextArgs
/// Context = new DockerBuild.Inputs.BuildContextArgs
/// {
/// Location = "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
/// },
/// Push = false,
/// });
///
/// });
@@ -415,22 +414,23 @@ namespace Pulumi.DockerBuild
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using Dockerbuild = Pulumi.Dockerbuild;
/// using DockerBuild = Pulumi.DockerBuild;
///
/// return await Deployment.RunAsync(() =&gt;
/// {
/// var image = new Dockerbuild.Image("image", new()
/// var image = new DockerBuild.Image("image", new()
/// {
/// Context = new Dockerbuild.Inputs.BuildContextArgs
/// Context = new DockerBuild.Inputs.BuildContextArgs
/// {
/// Location = "app",
/// },
/// Dockerfile = new Dockerbuild.Inputs.DockerfileArgs
/// Dockerfile = new DockerBuild.Inputs.DockerfileArgs
/// {
/// Inline = @"FROM busybox
/// COPY hello.c ./
/// ",
/// },
/// Push = false,
/// });
///
/// });
@@ -441,20 +441,21 @@ namespace Pulumi.DockerBuild
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using Dockerbuild = Pulumi.Dockerbuild;
/// using DockerBuild = Pulumi.DockerBuild;
///
/// return await Deployment.RunAsync(() =&gt;
/// {
/// var image = new Dockerbuild.Image("image", new()
/// var image = new DockerBuild.Image("image", new()
/// {
/// Context = new Dockerbuild.Inputs.BuildContextArgs
/// Context = new DockerBuild.Inputs.BuildContextArgs
/// {
/// Location = "https://github.com/docker-library/hello-world.git",
/// },
/// Dockerfile = new Dockerbuild.Inputs.DockerfileArgs
/// Dockerfile = new DockerBuild.Inputs.DockerfileArgs
/// {
/// Location = "app/Dockerfile",
/// },
/// Push = false,
/// });
///
/// });
@@ -465,26 +466,27 @@ namespace Pulumi.DockerBuild
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using Dockerbuild = Pulumi.Dockerbuild;
/// using DockerBuild = Pulumi.DockerBuild;
///
/// return await Deployment.RunAsync(() =&gt;
/// {
/// var image = new Dockerbuild.Image("image", new()
/// var image = new DockerBuild.Image("image", new()
/// {
/// Context = new Dockerbuild.Inputs.BuildContextArgs
/// Context = new DockerBuild.Inputs.BuildContextArgs
/// {
/// Location = "app",
/// },
/// Exports = new[]
/// {
/// new Dockerbuild.Inputs.ExportArgs
/// new DockerBuild.Inputs.ExportArgs
/// {
/// Docker = new Dockerbuild.Inputs.ExportDockerArgs
/// Docker = new DockerBuild.Inputs.ExportDockerArgs
/// {
/// Tar = true,
/// },
/// },
/// },
/// Push = false,
/// });
///
/// });
@@ -517,20 +519,17 @@ namespace Pulumi.DockerBuild
public Output<ImmutableDictionary<string, string>?> BuildArgs { get; private set; } = null!;
/// <summary>
/// By default, preview behavior depends on the execution environment. If
/// Pulumi detects the operation is running on a CI system (GitHub Actions,
/// Travis CI, Azure Pipelines, etc.) then it will build images during
/// previews as a safeguard. Otherwise, if not running on CI, previews will
/// not build images.
///
/// Setting this to `false` forces previews to never perform builds, and
/// setting it to `true` will always build the image during previews.
/// Setting this to `false` will always skip image builds during previews,
/// and setting it to `true` will always build images during previews.
///
/// Images built during previews are never exported to registries, however
/// cache manifests are still exported.
///
/// On-disk Dockerfiles are always validated for syntactic correctness
/// regardless of this setting.
///
/// Defaults to `true` as a safeguard against broken images merging as part
/// of CI pipelines.
/// </summary>
[Output("buildOnPreview")]
public Output<bool?> BuildOnPreview { get; private set; } = null!;
@@ -692,7 +691,7 @@ namespace Pulumi.DockerBuild
/// Equivalent to Docker's `--push` flag.
/// </summary>
[Output("push")]
public Output<bool?> Push { get; private set; } = null!;
public Output<bool> Push { get; private set; } = null!;
/// <summary>
/// If the image was pushed to any registries then this will contain a
@@ -776,7 +775,7 @@ namespace Pulumi.DockerBuild
/// <param name="name">The unique name of the resource</param>
/// <param name="args">The arguments used to populate this resource's properties</param>
/// <param name="options">A bag of options that control this resource's behavior</param>
public Image(string name, ImageArgs? args = null, CustomResourceOptions? options = null)
public Image(string name, ImageArgs args, CustomResourceOptions? options = null)
: base("docker-build:index:Image", name, args ?? new ImageArgs(), MakeResourceOptions(options, ""))
{
}
@@ -791,7 +790,6 @@ namespace Pulumi.DockerBuild
var defaultOptions = new CustomResourceOptions
{
Version = Utilities.Version,
PluginDownloadURL = "github.com/pulumi/pulumi-docker-build",
};
var merged = CustomResourceOptions.Merge(defaultOptions, options);
// Override the ID if one was specified for consistency with other language SDKs.
@@ -849,20 +847,17 @@ namespace Pulumi.DockerBuild
}
/// <summary>
/// By default, preview behavior depends on the execution environment. If
/// Pulumi detects the operation is running on a CI system (GitHub Actions,
/// Travis CI, Azure Pipelines, etc.) then it will build images during
/// previews as a safeguard. Otherwise, if not running on CI, previews will
/// not build images.
///
/// Setting this to `false` forces previews to never perform builds, and
/// setting it to `true` will always build the image during previews.
/// Setting this to `false` will always skip image builds during previews,
/// and setting it to `true` will always build images during previews.
///
/// Images built during previews are never exported to registries, however
/// cache manifests are still exported.
///
/// On-disk Dockerfiles are always validated for syntactic correctness
/// regardless of this setting.
///
/// Defaults to `true` as a safeguard against broken images merging as part
/// of CI pipelines.
/// </summary>
[Input("buildOnPreview")]
public Input<bool>? BuildOnPreview { get; set; }
@@ -1033,8 +1028,8 @@ namespace Pulumi.DockerBuild
///
/// Equivalent to Docker's `--push` flag.
/// </summary>
[Input("push")]
public Input<bool>? Push { get; set; }
[Input("push", required: true)]
public Input<bool> Push { get; set; } = null!;
[Input("registries")]
private InputList<Inputs.RegistryArgs>? _registries;
@@ -1117,6 +1112,7 @@ namespace Pulumi.DockerBuild
public ImageArgs()
{
BuildOnPreview = true;
Network = Pulumi.DockerBuild.NetworkMode.@Default;
}
public static new ImageArgs Empty => new ImageArgs();

23
sdk/dotnet/Index.cs generated
View File

@@ -10,13 +10,25 @@ using Pulumi.Serialization;
namespace Pulumi.DockerBuild
{
/// <summary>
/// An index (or manifest list) referencing one or more existing images.
/// A wrapper around `docker buildx imagetools create` to create an index
/// (or manifest list) referencing one or more existing images.
///
/// Useful for crafting a multi-platform image from several
/// platform-specific images.
/// In most cases you do not need an `Index` to build a multi-platform
/// image -- specifying multiple platforms on the `Image` will handle this
/// for you automatically.
///
/// This creates an OCI image index or a Docker manifest list depending on
/// the media types of the source images.
/// However, as of April 2024, building multi-platform images _with
/// caching_ will only export a cache for one platform at a time (see [this
/// discussion](https://github.com/docker/buildx/discussions/1382) for more
/// details).
///
/// Therefore this resource can be helpful if you are building
/// multi-platform images with caching: each platform can be built and
/// cached separately, and an `Index` can join them all together. An
/// example of this is shown below.
///
/// This resource creates an OCI image index or a Docker manifest list
/// depending on the media types of the source images.
///
/// ## Example Usage
/// ### Multi-platform registry caching
@@ -182,7 +194,6 @@ namespace Pulumi.DockerBuild
var defaultOptions = new CustomResourceOptions
{
Version = Utilities.Version,
PluginDownloadURL = "github.com/pulumi/pulumi-docker-build",
};
var merged = CustomResourceOptions.Merge(defaultOptions, options);
// Override the ID if one was specified for consistency with other language SDKs.

View File

@@ -36,7 +36,6 @@ namespace Pulumi.DockerBuild
var defaultOptions = new CustomResourceOptions
{
Version = Utilities.Version,
PluginDownloadURL = "github.com/pulumi/pulumi-docker-build",
};
var merged = CustomResourceOptions.Merge(defaultOptions, options);
// Override the ID if one was specified for consistency with other language SDKs.

View File

@@ -4,9 +4,9 @@
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>pulumi</Authors>
<Company>pulumi</Company>
<Description>A Pulumi provider for Docker buildx</Description>
<Description>A Pulumi provider for building modern Docker images with buildx and BuildKit.</Description>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<PackageProjectUrl>https://pulumi.io</PackageProjectUrl>
<PackageProjectUrl>https://pulumi.com</PackageProjectUrl>
<RepositoryUrl>https://github.com/pulumi/pulumi-docker-build</RepositoryUrl>
<PackageIcon>logo.png</PackageIcon>

2
sdk/dotnet/README.md generated
View File

@@ -1 +1 @@
A Pulumi provider for Docker buildx
A Pulumi provider for building modern Docker images with buildx and BuildKit.

View File

@@ -53,7 +53,6 @@ namespace Pulumi.DockerBuild
{
var dst = src ?? new global::Pulumi.InvokeOptions{};
dst.Version = src?.Version ?? Version;
dst.PluginDownloadURL = src?.PluginDownloadURL ?? "github.com/pulumi/pulumi-docker-build";
return dst;
}

View File

@@ -1,5 +1,4 @@
{
"resource": true,
"name": "docker-build",
"server": "github.com/pulumi/pulumi-docker-build"
"name": "docker-build"
}

View File

@@ -1,2 +1,2 @@
// A Pulumi provider for Docker buildx
// A Pulumi provider for building modern Docker images with buildx and BuildKit.
package dockerbuild

View File

@@ -7,6 +7,7 @@ import (
"context"
"reflect"
"errors"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
@@ -17,20 +18,14 @@ import (
//
// ## Stability
//
// **This resource is experimental and subject to change.**
// **This resource is pre-1.0 and in public preview.**
//
// API types are unstable. Subsequent releases _may_ require manual edits
// to your state file(s) in order to adopt API changes.
// We will strive to keep APIs and behavior as stable as possible, but we
// cannot guarantee stability until version 1.0.
//
// `retainOnDelete: true` is recommended with this resource until it is
// stable. This enables future API changes to be adopted more easily by renaming
// resources.
// ## Migrating Pulumi Docker v3 and v4 Image resources
//
// Only use this resource if you understand and accept the risks.
//
// ## Migrating v3 and v4 Image resources
//
// The `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
// This provider's `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
// Existing `Image` resources can be converted to the docker-build `Image` resources with minor modifications.
//
// ### Behavioral differences
@@ -44,19 +39,17 @@ import (
//
// Version `4.x` changed build-on-preview behavior to be opt-in.
// By default, `v4.x` `Image` resources do _not_ build during previews, but this behavior can be toggled with the `buildOnPreview` option.
// Some users felt this made previews in CI less helpful because they no longer detected bad images by default.
// Several users reported outages due to the default behavior allowing bad images to accidentally sneak through CI.
//
// The default behavior of the `Image` resource has been changed to strike a better balance between CI use cases and manual updates.
// By default, Pulumi will now only build `Image` resources during previews when it detects a CI environment like GitHub Actions.
// Previews run in non-CI environments will not build images.
// This behavior is still configurable with `buildOnPreview`.
// The default behavior of this provider's `Image` resource is similar to `3.x` and will build images during previews.
// This behavior can be changed by specifying `buildOnPreview`.
//
// #### Push behavior
//
// Versions `3.x` and `4.x` of the Pulumi Docker provider attempt to push images to remote registries by default.
// They expose a `skipPush: true` option to disable pushing.
//
// The `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
// This provider's `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
//
// To push images to a registry you can include `push: true` (equivalent to Docker's `--push` flag) or configure an `export` of type `registry` (equivalent to Docker's `--output type=registry`).
// Like Docker, if an image is configured without exports you will see a warning with instructions for how to enable pushing, but the build will still proceed normally.
@@ -132,7 +125,7 @@ import (
// "fmt"
//
// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -203,7 +196,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -214,10 +207,11 @@ import (
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
// Platforms: dockerbuild.PlatformArray{
// Platforms: docker - build.PlatformArray{
// dockerbuild.Platform_Plan9_amd64,
// dockerbuild.Platform_Plan9_386,
// },
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -233,7 +227,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -271,7 +265,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -297,6 +291,7 @@ import (
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -312,7 +307,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -327,6 +322,7 @@ import (
// Location: pulumi.String("app"),
// },
// Exec: pulumi.Bool(true),
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -342,7 +338,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -356,6 +352,7 @@ import (
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -371,7 +368,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -382,6 +379,7 @@ import (
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
// Push: pulumi.Bool(false),
// Target: pulumi.String("build-me"),
// })
// if err != nil {
@@ -398,7 +396,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -414,6 +412,7 @@ import (
// },
// },
// },
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -429,7 +428,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -440,6 +439,7 @@ import (
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"),
// },
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -455,7 +455,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -469,6 +469,7 @@ import (
// Dockerfile: &dockerbuild.DockerfileArgs{
// Inline: pulumi.String("FROM busybox\nCOPY hello.c ./\n"),
// },
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -484,7 +485,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -498,6 +499,7 @@ import (
// Dockerfile: &dockerbuild.DockerfileArgs{
// Location: pulumi.String("app/Dockerfile"),
// },
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -513,7 +515,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -531,6 +533,7 @@ import (
// },
// },
// },
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -557,20 +560,17 @@ type Image struct {
//
// Equivalent to Docker's `--build-arg` flag.
BuildArgs pulumi.StringMapOutput `pulumi:"buildArgs"`
// By default, preview behavior depends on the execution environment. If
// Pulumi detects the operation is running on a CI system (GitHub Actions,
// Travis CI, Azure Pipelines, etc.) then it will build images during
// previews as a safeguard. Otherwise, if not running on CI, previews will
// not build images.
//
// Setting this to `false` forces previews to never perform builds, and
// setting it to `true` will always build the image during previews.
// Setting this to `false` will always skip image builds during previews,
// and setting it to `true` will always build images during previews.
//
// Images built during previews are never exported to registries, however
// cache manifests are still exported.
//
// On-disk Dockerfiles are always validated for syntactic correctness
// regardless of this setting.
//
// Defaults to `true` as a safeguard against broken images merging as part
// of CI pipelines.
BuildOnPreview pulumi.BoolPtrOutput `pulumi:"buildOnPreview"`
// Builder configuration.
Builder BuilderConfigPtrOutput `pulumi:"builder"`
@@ -666,7 +666,7 @@ type Image struct {
// Defaults to `false`.
//
// Equivalent to Docker's `--push` flag.
Push pulumi.BoolPtrOutput `pulumi:"push"`
Push pulumi.BoolOutput `pulumi:"push"`
// If the image was pushed to any registries then this will contain a
// single fully-qualified tag including the build's digest.
//
@@ -723,9 +723,15 @@ type Image struct {
func NewImage(ctx *pulumi.Context,
name string, args *ImageArgs, opts ...pulumi.ResourceOption) (*Image, error) {
if args == nil {
args = &ImageArgs{}
return nil, errors.New("missing one or more required arguments")
}
if args.Push == nil {
return nil, errors.New("invalid value for required argument 'Push'")
}
if args.BuildOnPreview == nil {
args.BuildOnPreview = pulumi.BoolPtr(true)
}
if args.Network == nil {
args.Network = NetworkMode("default")
}
@@ -776,20 +782,17 @@ type imageArgs struct {
//
// Equivalent to Docker's `--build-arg` flag.
BuildArgs map[string]string `pulumi:"buildArgs"`
// By default, preview behavior depends on the execution environment. If
// Pulumi detects the operation is running on a CI system (GitHub Actions,
// Travis CI, Azure Pipelines, etc.) then it will build images during
// previews as a safeguard. Otherwise, if not running on CI, previews will
// not build images.
//
// Setting this to `false` forces previews to never perform builds, and
// setting it to `true` will always build the image during previews.
// Setting this to `false` will always skip image builds during previews,
// and setting it to `true` will always build images during previews.
//
// Images built during previews are never exported to registries, however
// cache manifests are still exported.
//
// On-disk Dockerfiles are always validated for syntactic correctness
// regardless of this setting.
//
// Defaults to `true` as a safeguard against broken images merging as part
// of CI pipelines.
BuildOnPreview *bool `pulumi:"buildOnPreview"`
// Builder configuration.
Builder *BuilderConfig `pulumi:"builder"`
@@ -873,7 +876,7 @@ type imageArgs struct {
// Defaults to `false`.
//
// Equivalent to Docker's `--push` flag.
Push *bool `pulumi:"push"`
Push bool `pulumi:"push"`
// Registry credentials. Required if reading or exporting to private
// repositories.
//
@@ -927,20 +930,17 @@ type ImageArgs struct {
//
// Equivalent to Docker's `--build-arg` flag.
BuildArgs pulumi.StringMapInput
// By default, preview behavior depends on the execution environment. If
// Pulumi detects the operation is running on a CI system (GitHub Actions,
// Travis CI, Azure Pipelines, etc.) then it will build images during
// previews as a safeguard. Otherwise, if not running on CI, previews will
// not build images.
//
// Setting this to `false` forces previews to never perform builds, and
// setting it to `true` will always build the image during previews.
// Setting this to `false` will always skip image builds during previews,
// and setting it to `true` will always build images during previews.
//
// Images built during previews are never exported to registries, however
// cache manifests are still exported.
//
// On-disk Dockerfiles are always validated for syntactic correctness
// regardless of this setting.
//
// Defaults to `true` as a safeguard against broken images merging as part
// of CI pipelines.
BuildOnPreview pulumi.BoolPtrInput
// Builder configuration.
Builder BuilderConfigPtrInput
@@ -1024,7 +1024,7 @@ type ImageArgs struct {
// Defaults to `false`.
//
// Equivalent to Docker's `--push` flag.
Push pulumi.BoolPtrInput
Push pulumi.BoolInput
// Registry credentials. Required if reading or exporting to private
// repositories.
//
@@ -1131,20 +1131,17 @@ func (o ImageOutput) BuildArgs() pulumi.StringMapOutput {
return o.ApplyT(func(v *Image) pulumi.StringMapOutput { return v.BuildArgs }).(pulumi.StringMapOutput)
}
// By default, preview behavior depends on the execution environment. If
// Pulumi detects the operation is running on a CI system (GitHub Actions,
// Travis CI, Azure Pipelines, etc.) then it will build images during
// previews as a safeguard. Otherwise, if not running on CI, previews will
// not build images.
//
// Setting this to `false` forces previews to never perform builds, and
// setting it to `true` will always build the image during previews.
// Setting this to `false` will always skip image builds during previews,
// and setting it to `true` will always build images during previews.
//
// Images built during previews are never exported to registries, however
// cache manifests are still exported.
//
// On-disk Dockerfiles are always validated for syntactic correctness
// regardless of this setting.
//
// Defaults to `true` as a safeguard against broken images merging as part
// of CI pipelines.
func (o ImageOutput) BuildOnPreview() pulumi.BoolPtrOutput {
return o.ApplyT(func(v *Image) pulumi.BoolPtrOutput { return v.BuildOnPreview }).(pulumi.BoolPtrOutput)
}
@@ -1288,8 +1285,8 @@ func (o ImageOutput) Pull() pulumi.BoolPtrOutput {
// Defaults to `false`.
//
// Equivalent to Docker's `--push` flag.
func (o ImageOutput) Push() pulumi.BoolPtrOutput {
return o.ApplyT(func(v *Image) pulumi.BoolPtrOutput { return v.Push }).(pulumi.BoolPtrOutput)
func (o ImageOutput) Push() pulumi.BoolOutput {
return o.ApplyT(func(v *Image) pulumi.BoolOutput { return v.Push }).(pulumi.BoolOutput)
}
// If the image was pushed to any registries then this will contain a

View File

@@ -13,13 +13,25 @@ import (
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
)
// An index (or manifest list) referencing one or more existing images.
// A wrapper around `docker buildx imagetools create` to create an index
// (or manifest list) referencing one or more existing images.
//
// Useful for crafting a multi-platform image from several
// platform-specific images.
// In most cases you do not need an `Index` to build a multi-platform
// image -- specifying multiple platforms on the `Image` will handle this
// for you automatically.
//
// This creates an OCI image index or a Docker manifest list depending on
// the media types of the source images.
// However, as of April 2024, building multi-platform images _with
// caching_ will only export a cache for one platform at a time (see [this
// discussion](https://github.com/docker/buildx/discussions/1382) for more
// details).
//
// Therefore this resource can be helpful if you are building
// multi-platform images with caching: each platform can be built and
// cached separately, and an `Index` can join them all together. An
// example of this is shown below.
//
// This resource creates an OCI image index or a Docker manifest list
// depending on the media types of the source images.
//
// ## Example Usage
// ### Multi-platform registry caching

View File

@@ -164,7 +164,7 @@ func callPlainInner(
// PkgResourceDefaultOpts provides package level defaults to pulumi.OptionResource.
func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOption {
defaults := []pulumi.ResourceOption{}
defaults = append(defaults, pulumi.PluginDownloadURL("github.com/pulumi/pulumi-docker-build"))
version := SdkVersion
if !version.Equals(semver.Version{}) {
defaults = append(defaults, pulumi.Version(version.String()))
@@ -175,7 +175,7 @@ func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOptio
// PkgInvokeDefaultOpts provides package level defaults to pulumi.OptionInvoke.
func PkgInvokeDefaultOpts(opts []pulumi.InvokeOption) []pulumi.InvokeOption {
defaults := []pulumi.InvokeOption{}
defaults = append(defaults, pulumi.PluginDownloadURL("github.com/pulumi/pulumi-docker-build"))
version := SdkVersion
if !version.Equals(semver.Version{}) {
defaults = append(defaults, pulumi.Version(version.String()))

View File

@@ -1,5 +1,4 @@
{
"resource": true,
"name": "docker-build",
"server": "github.com/pulumi/pulumi-docker-build"
"name": "docker-build"
}

View File

@@ -1,2 +1,2 @@
// A Pulumi provider for Docker buildx
// A Pulumi provider for building modern Docker images with buildx and BuildKit.
package dockerbuild

View File

@@ -7,6 +7,7 @@ import (
"context"
"reflect"
"errors"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
@@ -17,20 +18,14 @@ import (
//
// ## Stability
//
// **This resource is experimental and subject to change.**
// **This resource is pre-1.0 and in public preview.**
//
// API types are unstable. Subsequent releases _may_ require manual edits
// to your state file(s) in order to adopt API changes.
// We will strive to keep APIs and behavior as stable as possible, but we
// cannot guarantee stability until version 1.0.
//
// `retainOnDelete: true` is recommended with this resource until it is
// stable. This enables future API changes to be adopted more easily by renaming
// resources.
// ## Migrating Pulumi Docker v3 and v4 Image resources
//
// Only use this resource if you understand and accept the risks.
//
// ## Migrating v3 and v4 Image resources
//
// The `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
// This provider's `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
// Existing `Image` resources can be converted to the docker-build `Image` resources with minor modifications.
//
// ### Behavioral differences
@@ -44,19 +39,17 @@ import (
//
// Version `4.x` changed build-on-preview behavior to be opt-in.
// By default, `v4.x` `Image` resources do _not_ build during previews, but this behavior can be toggled with the `buildOnPreview` option.
// Some users felt this made previews in CI less helpful because they no longer detected bad images by default.
// Several users reported outages due to the default behavior allowing bad images to accidentally sneak through CI.
//
// The default behavior of the `Image` resource has been changed to strike a better balance between CI use cases and manual updates.
// By default, Pulumi will now only build `Image` resources during previews when it detects a CI environment like GitHub Actions.
// Previews run in non-CI environments will not build images.
// This behavior is still configurable with `buildOnPreview`.
// The default behavior of this provider's `Image` resource is similar to `3.x` and will build images during previews.
// This behavior can be changed by specifying `buildOnPreview`.
//
// #### Push behavior
//
// Versions `3.x` and `4.x` of the Pulumi Docker provider attempt to push images to remote registries by default.
// They expose a `skipPush: true` option to disable pushing.
//
// The `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
// This provider's `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
//
// To push images to a registry you can include `push: true` (equivalent to Docker's `--push` flag) or configure an `export` of type `registry` (equivalent to Docker's `--output type=registry`).
// Like Docker, if an image is configured without exports you will see a warning with instructions for how to enable pushing, but the build will still proceed normally.
@@ -132,7 +125,7 @@ import (
// "fmt"
//
// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -203,7 +196,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -214,10 +207,11 @@ import (
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
// Platforms: dockerbuild.PlatformArray{
// Platforms: docker - build.PlatformArray{
// dockerbuild.Platform_Plan9_amd64,
// dockerbuild.Platform_Plan9_386,
// },
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -233,7 +227,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -271,7 +265,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -297,6 +291,7 @@ import (
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -312,7 +307,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -327,6 +322,7 @@ import (
// Location: pulumi.String("app"),
// },
// Exec: pulumi.Bool(true),
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -342,7 +338,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -356,6 +352,7 @@ import (
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -371,7 +368,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -382,6 +379,7 @@ import (
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
// Push: pulumi.Bool(false),
// Target: pulumi.String("build-me"),
// })
// if err != nil {
@@ -398,7 +396,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -414,6 +412,7 @@ import (
// },
// },
// },
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -429,7 +428,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -440,6 +439,7 @@ import (
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"),
// },
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -455,7 +455,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -469,6 +469,7 @@ import (
// Dockerfile: &dockerbuild.DockerfileArgs{
// Inline: pulumi.String("FROM busybox\nCOPY hello.c ./\n"),
// },
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -484,7 +485,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -498,6 +499,7 @@ import (
// Dockerfile: &dockerbuild.DockerfileArgs{
// Location: pulumi.String("app/Dockerfile"),
// },
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -513,7 +515,7 @@ import (
//
// import (
//
// "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
@@ -531,6 +533,7 @@ import (
// },
// },
// },
// Push: pulumi.Bool(false),
// })
// if err != nil {
// return err
@@ -557,20 +560,17 @@ type Image struct {
//
// Equivalent to Docker's `--build-arg` flag.
BuildArgs pulumix.MapOutput[string] `pulumi:"buildArgs"`
// By default, preview behavior depends on the execution environment. If
// Pulumi detects the operation is running on a CI system (GitHub Actions,
// Travis CI, Azure Pipelines, etc.) then it will build images during
// previews as a safeguard. Otherwise, if not running on CI, previews will
// not build images.
//
// Setting this to `false` forces previews to never perform builds, and
// setting it to `true` will always build the image during previews.
// Setting this to `false` will always skip image builds during previews,
// and setting it to `true` will always build images during previews.
//
// Images built during previews are never exported to registries, however
// cache manifests are still exported.
//
// On-disk Dockerfiles are always validated for syntactic correctness
// regardless of this setting.
//
// Defaults to `true` as a safeguard against broken images merging as part
// of CI pipelines.
BuildOnPreview pulumix.Output[*bool] `pulumi:"buildOnPreview"`
// Builder configuration.
Builder pulumix.GPtrOutput[BuilderConfig, BuilderConfigOutput] `pulumi:"builder"`
@@ -666,7 +666,7 @@ type Image struct {
// Defaults to `false`.
//
// Equivalent to Docker's `--push` flag.
Push pulumix.Output[*bool] `pulumi:"push"`
Push pulumix.Output[bool] `pulumi:"push"`
// If the image was pushed to any registries then this will contain a
// single fully-qualified tag including the build's digest.
//
@@ -723,9 +723,15 @@ type Image struct {
func NewImage(ctx *pulumi.Context,
name string, args *ImageArgs, opts ...pulumi.ResourceOption) (*Image, error) {
if args == nil {
args = &ImageArgs{}
return nil, errors.New("missing one or more required arguments")
}
if args.Push == nil {
return nil, errors.New("invalid value for required argument 'Push'")
}
if args.BuildOnPreview == nil {
args.BuildOnPreview = pulumix.Ptr(true)
}
if args.Network == nil {
args.Network = pulumix.Ptr(NetworkMode("default"))
}
@@ -776,20 +782,17 @@ type imageArgs struct {
//
// Equivalent to Docker's `--build-arg` flag.
BuildArgs map[string]string `pulumi:"buildArgs"`
// By default, preview behavior depends on the execution environment. If
// Pulumi detects the operation is running on a CI system (GitHub Actions,
// Travis CI, Azure Pipelines, etc.) then it will build images during
// previews as a safeguard. Otherwise, if not running on CI, previews will
// not build images.
//
// Setting this to `false` forces previews to never perform builds, and
// setting it to `true` will always build the image during previews.
// Setting this to `false` will always skip image builds during previews,
// and setting it to `true` will always build images during previews.
//
// Images built during previews are never exported to registries, however
// cache manifests are still exported.
//
// On-disk Dockerfiles are always validated for syntactic correctness
// regardless of this setting.
//
// Defaults to `true` as a safeguard against broken images merging as part
// of CI pipelines.
BuildOnPreview *bool `pulumi:"buildOnPreview"`
// Builder configuration.
Builder *BuilderConfig `pulumi:"builder"`
@@ -873,7 +876,7 @@ type imageArgs struct {
// Defaults to `false`.
//
// Equivalent to Docker's `--push` flag.
Push *bool `pulumi:"push"`
Push bool `pulumi:"push"`
// Registry credentials. Required if reading or exporting to private
// repositories.
//
@@ -927,20 +930,17 @@ type ImageArgs struct {
//
// Equivalent to Docker's `--build-arg` flag.
BuildArgs pulumix.Input[map[string]string]
// By default, preview behavior depends on the execution environment. If
// Pulumi detects the operation is running on a CI system (GitHub Actions,
// Travis CI, Azure Pipelines, etc.) then it will build images during
// previews as a safeguard. Otherwise, if not running on CI, previews will
// not build images.
//
// Setting this to `false` forces previews to never perform builds, and
// setting it to `true` will always build the image during previews.
// Setting this to `false` will always skip image builds during previews,
// and setting it to `true` will always build images during previews.
//
// Images built during previews are never exported to registries, however
// cache manifests are still exported.
//
// On-disk Dockerfiles are always validated for syntactic correctness
// regardless of this setting.
//
// Defaults to `true` as a safeguard against broken images merging as part
// of CI pipelines.
BuildOnPreview pulumix.Input[*bool]
// Builder configuration.
Builder pulumix.Input[*BuilderConfigArgs]
@@ -1024,7 +1024,7 @@ type ImageArgs struct {
// Defaults to `false`.
//
// Equivalent to Docker's `--push` flag.
Push pulumix.Input[*bool]
Push pulumix.Input[bool]
// Registry credentials. Required if reading or exporting to private
// repositories.
//
@@ -1110,20 +1110,17 @@ func (o ImageOutput) BuildArgs() pulumix.MapOutput[string] {
return pulumix.MapOutput[string]{OutputState: unwrapped.OutputState}
}
// By default, preview behavior depends on the execution environment. If
// Pulumi detects the operation is running on a CI system (GitHub Actions,
// Travis CI, Azure Pipelines, etc.) then it will build images during
// previews as a safeguard. Otherwise, if not running on CI, previews will
// not build images.
//
// Setting this to `false` forces previews to never perform builds, and
// setting it to `true` will always build the image during previews.
// Setting this to `false` will always skip image builds during previews,
// and setting it to `true` will always build images during previews.
//
// Images built during previews are never exported to registries, however
// cache manifests are still exported.
//
// On-disk Dockerfiles are always validated for syntactic correctness
// regardless of this setting.
//
// Defaults to `true` as a safeguard against broken images merging as part
// of CI pipelines.
func (o ImageOutput) BuildOnPreview() pulumix.Output[*bool] {
value := pulumix.Apply[Image](o, func(v Image) pulumix.Output[*bool] { return v.BuildOnPreview })
return pulumix.Flatten[*bool, pulumix.Output[*bool]](value)
@@ -1291,9 +1288,9 @@ func (o ImageOutput) Pull() pulumix.Output[*bool] {
// Defaults to `false`.
//
// Equivalent to Docker's `--push` flag.
func (o ImageOutput) Push() pulumix.Output[*bool] {
value := pulumix.Apply[Image](o, func(v Image) pulumix.Output[*bool] { return v.Push })
return pulumix.Flatten[*bool, pulumix.Output[*bool]](value)
func (o ImageOutput) Push() pulumix.Output[bool] {
value := pulumix.Apply[Image](o, func(v Image) pulumix.Output[bool] { return v.Push })
return pulumix.Flatten[bool, pulumix.Output[bool]](value)
}
// If the image was pushed to any registries then this will contain a

View File

@@ -13,13 +13,25 @@ import (
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
)
// An index (or manifest list) referencing one or more existing images.
// A wrapper around `docker buildx imagetools create` to create an index
// (or manifest list) referencing one or more existing images.
//
// Useful for crafting a multi-platform image from several
// platform-specific images.
// In most cases you do not need an `Index` to build a multi-platform
// image -- specifying multiple platforms on the `Image` will handle this
// for you automatically.
//
// This creates an OCI image index or a Docker manifest list depending on
// the media types of the source images.
// However, as of April 2024, building multi-platform images _with
// caching_ will only export a cache for one platform at a time (see [this
// discussion](https://github.com/docker/buildx/discussions/1382) for more
// details).
//
// Therefore this resource can be helpful if you are building
// multi-platform images with caching: each platform can be built and
// cached separately, and an `Index` can join them all together. An
// example of this is shown below.
//
// This resource creates an OCI image index or a Docker manifest list
// depending on the media types of the source images.
//
// ## Example Usage
// ### Multi-platform registry caching

2
sdk/java/README.md generated
View File

@@ -1 +1 @@
A Pulumi provider for Docker buildx
A Pulumi provider for building modern Docker images with buildx and BuildKit.

View File

@@ -31,20 +31,14 @@ import javax.annotation.Nullable;
*
* ## Stability
*
* **This resource is experimental and subject to change.**
* **This resource is pre-1.0 and in public preview.**
*
* API types are unstable. Subsequent releases _may_ require manual edits
* to your state file(s) in order to adopt API changes.
* We will strive to keep APIs and behavior as stable as possible, but we
* cannot guarantee stability until version 1.0.
*
* `retainOnDelete: true` is recommended with this resource until it is
* stable. This enables future API changes to be adopted more easily by renaming
* resources.
* ## Migrating Pulumi Docker v3 and v4 Image resources
*
* Only use this resource if you understand and accept the risks.
*
* ## Migrating v3 and v4 Image resources
*
* The `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
* This provider&#39;s `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
* Existing `Image` resources can be converted to the docker-build `Image` resources with minor modifications.
*
* ### Behavioral differences
@@ -58,19 +52,17 @@ import javax.annotation.Nullable;
*
* Version `4.x` changed build-on-preview behavior to be opt-in.
* By default, `v4.x` `Image` resources do _not_ build during previews, but this behavior can be toggled with the `buildOnPreview` option.
* Some users felt this made previews in CI less helpful because they no longer detected bad images by default.
* Several users reported outages due to the default behavior allowing bad images to accidentally sneak through CI.
*
* The default behavior of the `Image` resource has been changed to strike a better balance between CI use cases and manual updates.
* By default, Pulumi will now only build `Image` resources during previews when it detects a CI environment like GitHub Actions.
* Previews run in non-CI environments will not build images.
* This behavior is still configurable with `buildOnPreview`.
* The default behavior of this provider&#39;s `Image` resource is similar to `3.x` and will build images during previews.
* This behavior can be changed by specifying `buildOnPreview`.
*
* #### Push behavior
*
* Versions `3.x` and `4.x` of the Pulumi Docker provider attempt to push images to remote registries by default.
* They expose a `skipPush: true` option to disable pushing.
*
* The `Image` resource matches the Docker CLI&#39;s behavior and does not push images anywhere by default.
* This provider&#39;s `Image` resource matches the Docker CLI&#39;s behavior and does not push images anywhere by default.
*
* To push images to a registry you can include `push: true` (equivalent to Docker&#39;s `--push` flag) or configure an `export` of type `registry` (equivalent to Docker&#39;s `--output type=registry`).
* Like Docker, if an image is configured without exports you will see a warning with instructions for how to enable pushing, but the build will still proceed normally.
@@ -233,6 +225,7 @@ import javax.annotation.Nullable;
* .platforms(
* &#34;plan9/amd64&#34;,
* &#34;plan9/386&#34;)
* .push(false)
* .build());
*
* }
@@ -321,6 +314,7 @@ import javax.annotation.Nullable;
* .context(BuildContextArgs.builder()
* .location(&#34;app&#34;)
* .build())
* .push(false)
* .build());
*
* }
@@ -358,6 +352,7 @@ import javax.annotation.Nullable;
* .location(&#34;app&#34;)
* .build())
* .exec(true)
* .push(false)
* .build());
*
* }
@@ -391,6 +386,7 @@ import javax.annotation.Nullable;
* .context(BuildContextArgs.builder()
* .location(&#34;app&#34;)
* .build())
* .push(false)
* .build());
*
* }
@@ -423,6 +419,7 @@ import javax.annotation.Nullable;
* .context(BuildContextArgs.builder()
* .location(&#34;app&#34;)
* .build())
* .push(false)
* .target(&#34;build-me&#34;)
* .build());
*
@@ -457,6 +454,7 @@ import javax.annotation.Nullable;
* .location(&#34;app&#34;)
* .named(Map.of(&#34;golang:latest&#34;, Map.of(&#34;location&#34;, &#34;docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984&#34;)))
* .build())
* .push(false)
* .build());
*
* }
@@ -489,6 +487,7 @@ import javax.annotation.Nullable;
* .context(BuildContextArgs.builder()
* .location(&#34;https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile&#34;)
* .build())
* .push(false)
* .build());
*
* }
@@ -528,6 +527,7 @@ import javax.annotation.Nullable;
* COPY hello.c ./
* &#34;&#34;&#34;)
* .build())
* .push(false)
* .build());
*
* }
@@ -564,6 +564,7 @@ import javax.annotation.Nullable;
* .dockerfile(DockerfileArgs.builder()
* .location(&#34;app/Dockerfile&#34;)
* .build())
* .push(false)
* .build());
*
* }
@@ -603,6 +604,7 @@ import javax.annotation.Nullable;
* .tar(true)
* .build())
* .build())
* .push(false)
* .build());
*
* }
@@ -661,14 +663,8 @@ public class Image extends com.pulumi.resources.CustomResource {
return Codegen.optional(this.buildArgs);
}
/**
* By default, preview behavior depends on the execution environment. If
* Pulumi detects the operation is running on a CI system (GitHub Actions,
* Travis CI, Azure Pipelines, etc.) then it will build images during
* previews as a safeguard. Otherwise, if not running on CI, previews will
* not build images.
*
* Setting this to `false` forces previews to never perform builds, and
* setting it to `true` will always build the image during previews.
* Setting this to `false` will always skip image builds during previews,
* and setting it to `true` will always build images during previews.
*
* Images built during previews are never exported to registries, however
* cache manifests are still exported.
@@ -676,19 +672,16 @@ public class Image extends com.pulumi.resources.CustomResource {
* On-disk Dockerfiles are always validated for syntactic correctness
* regardless of this setting.
*
* Defaults to `true` as a safeguard against broken images merging as part
* of CI pipelines.
*
*/
@Export(name="buildOnPreview", refs={Boolean.class}, tree="[0]")
private Output</* @Nullable */ Boolean> buildOnPreview;
/**
* @return By default, preview behavior depends on the execution environment. If
* Pulumi detects the operation is running on a CI system (GitHub Actions,
* Travis CI, Azure Pipelines, etc.) then it will build images during
* previews as a safeguard. Otherwise, if not running on CI, previews will
* not build images.
*
* Setting this to `false` forces previews to never perform builds, and
* setting it to `true` will always build the image during previews.
* @return Setting this to `false` will always skip image builds during previews,
* and setting it to `true` will always build images during previews.
*
* Images built during previews are never exported to registries, however
* cache manifests are still exported.
@@ -696,6 +689,9 @@ public class Image extends com.pulumi.resources.CustomResource {
* On-disk Dockerfiles are always validated for syntactic correctness
* regardless of this setting.
*
* Defaults to `true` as a safeguard against broken images merging as part
* of CI pipelines.
*
*/
public Output<Optional<Boolean>> buildOnPreview() {
return Codegen.optional(this.buildOnPreview);
@@ -1037,7 +1033,7 @@ public class Image extends com.pulumi.resources.CustomResource {
*
*/
@Export(name="push", refs={Boolean.class}, tree="[0]")
private Output</* @Nullable */ Boolean> push;
private Output<Boolean> push;
/**
* @return When `true` the build will automatically include a `registry` export.
@@ -1047,8 +1043,8 @@ public class Image extends com.pulumi.resources.CustomResource {
* Equivalent to Docker&#39;s `--push` flag.
*
*/
public Output<Optional<Boolean>> push() {
return Codegen.optional(this.push);
public Output<Boolean> push() {
return this.push;
}
/**
* If the image was pushed to any registries then this will contain a
@@ -1223,7 +1219,7 @@ public class Image extends com.pulumi.resources.CustomResource {
* @param name The _unique_ name of the resulting resource.
* @param args The arguments to use to populate this resource's properties.
*/
public Image(String name, @Nullable ImageArgs args) {
public Image(String name, ImageArgs args) {
this(name, args, null);
}
/**
@@ -1232,7 +1228,7 @@ public class Image extends com.pulumi.resources.CustomResource {
* @param args The arguments to use to populate this resource's properties.
* @param options A bag of options that control this resource's behavior.
*/
public Image(String name, @Nullable ImageArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
public Image(String name, ImageArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("docker-build:index:Image", name, args == null ? ImageArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
}

View File

@@ -16,6 +16,7 @@ import com.pulumi.dockerbuild.inputs.DockerfileArgs;
import com.pulumi.dockerbuild.inputs.ExportArgs;
import com.pulumi.dockerbuild.inputs.RegistryArgs;
import com.pulumi.dockerbuild.inputs.SSHArgs;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
@@ -80,14 +81,8 @@ public final class ImageArgs extends com.pulumi.resources.ResourceArgs {
}
/**
* By default, preview behavior depends on the execution environment. If
* Pulumi detects the operation is running on a CI system (GitHub Actions,
* Travis CI, Azure Pipelines, etc.) then it will build images during
* previews as a safeguard. Otherwise, if not running on CI, previews will
* not build images.
*
* Setting this to `false` forces previews to never perform builds, and
* setting it to `true` will always build the image during previews.
* Setting this to `false` will always skip image builds during previews,
* and setting it to `true` will always build images during previews.
*
* Images built during previews are never exported to registries, however
* cache manifests are still exported.
@@ -95,19 +90,16 @@ public final class ImageArgs extends com.pulumi.resources.ResourceArgs {
* On-disk Dockerfiles are always validated for syntactic correctness
* regardless of this setting.
*
* Defaults to `true` as a safeguard against broken images merging as part
* of CI pipelines.
*
*/
@Import(name="buildOnPreview")
private @Nullable Output<Boolean> buildOnPreview;
/**
* @return By default, preview behavior depends on the execution environment. If
* Pulumi detects the operation is running on a CI system (GitHub Actions,
* Travis CI, Azure Pipelines, etc.) then it will build images during
* previews as a safeguard. Otherwise, if not running on CI, previews will
* not build images.
*
* Setting this to `false` forces previews to never perform builds, and
* setting it to `true` will always build the image during previews.
* @return Setting this to `false` will always skip image builds during previews,
* and setting it to `true` will always build images during previews.
*
* Images built during previews are never exported to registries, however
* cache manifests are still exported.
@@ -115,6 +107,9 @@ public final class ImageArgs extends com.pulumi.resources.ResourceArgs {
* On-disk Dockerfiles are always validated for syntactic correctness
* regardless of this setting.
*
* Defaults to `true` as a safeguard against broken images merging as part
* of CI pipelines.
*
*/
public Optional<Output<Boolean>> buildOnPreview() {
return Optional.ofNullable(this.buildOnPreview);
@@ -425,8 +420,8 @@ public final class ImageArgs extends com.pulumi.resources.ResourceArgs {
* Equivalent to Docker&#39;s `--push` flag.
*
*/
@Import(name="push")
private @Nullable Output<Boolean> push;
@Import(name="push", required=true)
private Output<Boolean> push;
/**
* @return When `true` the build will automatically include a `registry` export.
@@ -436,8 +431,8 @@ public final class ImageArgs extends com.pulumi.resources.ResourceArgs {
* Equivalent to Docker&#39;s `--push` flag.
*
*/
public Optional<Output<Boolean>> push() {
return Optional.ofNullable(this.push);
public Output<Boolean> push() {
return this.push;
}
/**
@@ -685,14 +680,8 @@ public final class ImageArgs extends com.pulumi.resources.ResourceArgs {
}
/**
* @param buildOnPreview By default, preview behavior depends on the execution environment. If
* Pulumi detects the operation is running on a CI system (GitHub Actions,
* Travis CI, Azure Pipelines, etc.) then it will build images during
* previews as a safeguard. Otherwise, if not running on CI, previews will
* not build images.
*
* Setting this to `false` forces previews to never perform builds, and
* setting it to `true` will always build the image during previews.
* @param buildOnPreview Setting this to `false` will always skip image builds during previews,
* and setting it to `true` will always build images during previews.
*
* Images built during previews are never exported to registries, however
* cache manifests are still exported.
@@ -700,6 +689,9 @@ public final class ImageArgs extends com.pulumi.resources.ResourceArgs {
* On-disk Dockerfiles are always validated for syntactic correctness
* regardless of this setting.
*
* Defaults to `true` as a safeguard against broken images merging as part
* of CI pipelines.
*
* @return builder
*
*/
@@ -709,14 +701,8 @@ public final class ImageArgs extends com.pulumi.resources.ResourceArgs {
}
/**
* @param buildOnPreview By default, preview behavior depends on the execution environment. If
* Pulumi detects the operation is running on a CI system (GitHub Actions,
* Travis CI, Azure Pipelines, etc.) then it will build images during
* previews as a safeguard. Otherwise, if not running on CI, previews will
* not build images.
*
* Setting this to `false` forces previews to never perform builds, and
* setting it to `true` will always build the image during previews.
* @param buildOnPreview Setting this to `false` will always skip image builds during previews,
* and setting it to `true` will always build images during previews.
*
* Images built during previews are never exported to registries, however
* cache manifests are still exported.
@@ -724,6 +710,9 @@ public final class ImageArgs extends com.pulumi.resources.ResourceArgs {
* On-disk Dockerfiles are always validated for syntactic correctness
* regardless of this setting.
*
* Defaults to `true` as a safeguard against broken images merging as part
* of CI pipelines.
*
* @return builder
*
*/
@@ -1170,7 +1159,7 @@ public final class ImageArgs extends com.pulumi.resources.ResourceArgs {
* @return builder
*
*/
public Builder push(@Nullable Output<Boolean> push) {
public Builder push(Output<Boolean> push) {
$.push = push;
return this;
}
@@ -1388,7 +1377,11 @@ public final class ImageArgs extends com.pulumi.resources.ResourceArgs {
}
public ImageArgs build() {
$.buildOnPreview = Codegen.booleanProp("buildOnPreview").output().arg($.buildOnPreview).def(true).getNullable();
$.network = Codegen.objectProp("network", NetworkMode.class).output().arg($.network).def(NetworkMode.Default_).getNullable();
if ($.push == null) {
throw new MissingRequiredPropertyException("ImageArgs", "push");
}
return $;
}
}

View File

@@ -17,13 +17,25 @@ import java.util.Optional;
import javax.annotation.Nullable;
/**
* An index (or manifest list) referencing one or more existing images.
* A wrapper around `docker buildx imagetools create` to create an index
* (or manifest list) referencing one or more existing images.
*
* Useful for crafting a multi-platform image from several
* platform-specific images.
* In most cases you do not need an `Index` to build a multi-platform
* image -- specifying multiple platforms on the `Image` will handle this
* for you automatically.
*
* This creates an OCI image index or a Docker manifest list depending on
* the media types of the source images.
* However, as of April 2024, building multi-platform images _with
* caching_ will only export a cache for one platform at a time (see [this
* discussion](https://github.com/docker/buildx/discussions/1382) for more
* details).
*
* Therefore this resource can be helpful if you are building
* multi-platform images with caching: each platform can be built and
* cached separately, and an `Index` can join them all together. An
* example of this is shown below.
*
* This resource creates an OCI image index or a Docker manifest list
* depending on the media types of the source images.
*
* ## Example Usage
* ### Multi-platform registry caching

117
sdk/nodejs/README.md generated
View File

@@ -1,106 +1,23 @@
# Pulumi Native Provider Boilerplate
[![Slack](http://www.pulumi.com/images/docs/badges/slack.svg)](https://slack.pulumi.com)
[![NPM version](https://badge.fury.io/js/%40pulumi%2fdocker-build.svg)](https://www.npmjs.com/package/@pulumi/docker-build)
[![Python version](https://badge.fury.io/py/pulumi-docker-build.svg)](https://pypi.org/project/pulumi-docker-build)
[![NuGet version](https://badge.fury.io/nu/pulumi.dockerbuild.svg)](https://badge.fury.io/nu/pulumi.dockerbuild)
[![PkgGoDev](https://pkg.go.dev/badge/github.com/pulumi/pulumi-docker-build/sdk/go)](https://pkg.go.dev/github.com/pulumi/pulumi-docker-build/sdk/go)
[![License](https://img.shields.io/npm/l/%40pulumi%2Fpulumi.svg)](https://github.com/pulumi/pulumi-docker-build/blob/main/LICENSE)
This repository is a boilerplate showing how to create and locally test a native Pulumi provider.
# Docker-Build Resource Provider
## Authoring a Pulumi Native Provider
A [Pulumi](http://pulumi.com) provider for building modern Docker images with [buildx](https://docs.docker.com/build/architecture/) and [BuildKit](https://docs.docker.com/build/buildkit/).
This boilerplate creates a working Pulumi-owned provider named `xyz`.
It implements a random number generator that you can [build and test out for yourself](#test-against-the-example) and then replace the Random code with code specific to your provider.
Not to be confused with the earlier
[Docker](http://github.com/pulumi/pulumi-docker) provider, which is still
appropriate for managing resources unrelated to building images.
| Provider | Use cases |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `@pulumi/docker-build` | Anything related to building images with `docker build`. |
| `@pulumi/docker` | Everything else -- including running containers and creating networks. |
### Prerequisites
## Reference
Prerequisites for this repository are already satisfied by the [Pulumi Devcontainer](https://github.com/pulumi/devcontainer) if you are using Github Codespaces, or VSCode.
If you are not using VSCode, you will need to ensure the following tools are installed and present in your `$PATH`:
* [`pulumictl`](https://github.com/pulumi/pulumictl#installation)
* [Go 1.21](https://golang.org/dl/) or 1.latest
* [NodeJS](https://nodejs.org/en/) 14.x. We recommend using [nvm](https://github.com/nvm-sh/nvm) to manage NodeJS installations.
* [Yarn](https://yarnpkg.com/)
* [TypeScript](https://www.typescriptlang.org/)
* [Python](https://www.python.org/downloads/) (called as `python3`). For recent versions of MacOS, the system-installed version is fine.
* [.NET](https://dotnet.microsoft.com/download)
### Build & test the boilerplate XYZ provider
1. Create a new Github CodeSpaces environment using this repository.
1. Open a terminal in the CodeSpaces environment.
1. Run `make build install` to build and install the provider.
1. Run `make gen_examples` to generate the example programs in `examples/` off of the source `examples/yaml` example program.
1. Run `make up` to run the example program in `examples/yaml`.
1. Run `make down` to tear down the example program.
### Creating a new provider repository
Pulumi offers this repository as a [GitHub template repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template) for convenience. From this repository:
1. Click "Use this template".
1. Set the following options:
* Owner: pulumi
* Repository name: pulumi-xyz-native (replace "xyz" with the name of your provider)
* Description: Pulumi provider for xyz
* Repository type: Public
1. Clone the generated repository.
From the templated repository:
1. Search-replace `xyz` with the name of your desired provider.
#### Build the provider and install the plugin
```bash
$ make build install
```
This will:
1. Create the SDK codegen binary and place it in a `./bin` folder (gitignored)
2. Create the provider binary and place it in the `./bin` folder (gitignored)
3. Generate the dotnet, Go, Node, and Python SDKs and place them in the `./sdk` folder
4. Install the provider on your machine.
#### Test against the example
```bash
$ cd examples/simple
$ yarn link @pulumi/xyz
$ yarn install
$ pulumi stack init test
$ pulumi up
```
Now that you have completed all of the above steps, you have a working provider that generates a random string for you.
#### A brief repository overview
You now have:
1. A `provider/` folder containing the building and implementation logic
1. `cmd/pulumi-resource-xyz/main.go` - holds the provider's sample implementation logic.
2. `deployment-templates` - a set of files to help you around deployment and publication
3. `sdk` - holds the generated code libraries created by `pulumi-gen-xyz/main.go`
4. `examples` a folder of Pulumi programs to try locally and/or use in CI.
5. A `Makefile` and this `README`.
#### Additional Details
This repository depends on the pulumi-go-provider library. For more details on building providers, please check
the [Pulumi Go Provider docs](https://github.com/pulumi/pulumi-go-provider).
### Build Examples
Create an example program using the resources defined in your provider, and place it in the `examples/` folder.
You can now repeat the steps for [build, install, and test](#test-against-the-example).
## Configuring CI and releases
1. Follow the instructions laid out in the [deployment templates](./deployment-templates/README-DEPLOYMENT.md).
## References
Other resources/examples for implementing providers:
* [Pulumi Command provider](https://github.com/pulumi/pulumi-command/blob/master/provider/pkg/provider/provider.go)
* [Pulumi Go Provider repository](https://github.com/pulumi/pulumi-go-provider)
For more information, including examples and migration guidance, please see the Docker-Build provider's detailed [API documentation](https://www.pulumi.com/registry/packages/docker-build/).

149
sdk/nodejs/image.ts generated
View File

@@ -13,20 +13,14 @@ import * as utilities from "./utilities";
*
* ## Stability
*
* **This resource is experimental and subject to change.**
* **This resource is pre-1.0 and in public preview.**
*
* API types are unstable. Subsequent releases _may_ require manual edits
* to your state file(s) in order to adopt API changes.
* We will strive to keep APIs and behavior as stable as possible, but we
* cannot guarantee stability until version 1.0.
*
* `retainOnDelete: true` is recommended with this resource until it is
* stable. This enables future API changes to be adopted more easily by renaming
* resources.
* ## Migrating Pulumi Docker v3 and v4 Image resources
*
* Only use this resource if you understand and accept the risks.
*
* ## Migrating v3 and v4 Image resources
*
* The `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
* This provider's `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
* Existing `Image` resources can be converted to the docker-build `Image` resources with minor modifications.
*
* ### Behavioral differences
@@ -40,19 +34,17 @@ import * as utilities from "./utilities";
*
* Version `4.x` changed build-on-preview behavior to be opt-in.
* By default, `v4.x` `Image` resources do _not_ build during previews, but this behavior can be toggled with the `buildOnPreview` option.
* Some users felt this made previews in CI less helpful because they no longer detected bad images by default.
* Several users reported outages due to the default behavior allowing bad images to accidentally sneak through CI.
*
* The default behavior of the `Image` resource has been changed to strike a better balance between CI use cases and manual updates.
* By default, Pulumi will now only build `Image` resources during previews when it detects a CI environment like GitHub Actions.
* Previews run in non-CI environments will not build images.
* This behavior is still configurable with `buildOnPreview`.
* The default behavior of this provider's `Image` resource is similar to `3.x` and will build images during previews.
* This behavior can be changed by specifying `buildOnPreview`.
*
* #### Push behavior
*
* Versions `3.x` and `4.x` of the Pulumi Docker provider attempt to push images to remote registries by default.
* They expose a `skipPush: true` option to disable pushing.
*
* The `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
* This provider's `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
*
* To push images to a registry you can include `push: true` (equivalent to Docker's `--push` flag) or configure an `export` of type `registry` (equivalent to Docker's `--output type=registry`).
* Like Docker, if an image is configured without exports you will see a warning with instructions for how to enable pushing, but the build will still proceed normally.
@@ -170,7 +162,7 @@ import * as utilities from "./utilities";
* context: {
* location: "../app",
* },
* targets: ["mytarget"],
* target: "mytarget",
* buildArgs: {
* MY_BUILD_ARG: "foo",
* },
@@ -229,7 +221,7 @@ import * as utilities from "./utilities";
* context: {
* location: "../app",
* },
* targets: ["mytarget"],
* target: "mytarget",
* buildArgs: {
* MY_BUILD_ARG: "foo",
* },
@@ -253,13 +245,13 @@ import * as utilities from "./utilities";
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* import * as dockerbuild from "@pulumi/dockerbuild";
* import * as docker_build from "@pulumi/docker-build";
*
* const ecrRepository = new aws.ecr.Repository("ecr-repository", {});
* const authToken = aws.ecr.getAuthorizationTokenOutput({
* registryId: ecrRepository.registryId,
* });
* const myImage = new dockerbuild.Image("my-image", {
* const myImage = new docker_build.Image("my-image", {
* cacheFrom: [{
* registry: {
* ref: pulumi.interpolate`${ecrRepository.repositoryUrl}:cache`,
@@ -289,25 +281,26 @@ import * as utilities from "./utilities";
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as dockerbuild from "@pulumi/dockerbuild";
* import * as docker_build from "@pulumi/docker-build";
*
* const image = new dockerbuild.Image("image", {
* const image = new docker_build.Image("image", {
* context: {
* location: "app",
* },
* platforms: [
* dockerbuild.Platform.Plan9_amd64,
* dockerbuild.Platform.Plan9_386,
* docker_build.Platform.Plan9_amd64,
* docker_build.Platform.Plan9_386,
* ],
* push: false,
* });
* ```
* ### Registry export
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as dockerbuild from "@pulumi/dockerbuild";
* import * as docker_build from "@pulumi/docker-build";
*
* const image = new dockerbuild.Image("image", {
* const image = new docker_build.Image("image", {
* context: {
* location: "app",
* },
@@ -325,9 +318,9 @@ import * as utilities from "./utilities";
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as dockerbuild from "@pulumi/dockerbuild";
* import * as docker_build from "@pulumi/docker-build";
*
* const image = new dockerbuild.Image("image", {
* const image = new docker_build.Image("image", {
* cacheFrom: [{
* local: {
* src: "tmp/cache",
@@ -336,21 +329,22 @@ import * as utilities from "./utilities";
* cacheTo: [{
* local: {
* dest: "tmp/cache",
* mode: dockerbuild.CacheMode.Max,
* mode: docker_build.CacheMode.Max,
* },
* }],
* context: {
* location: "app",
* },
* push: false,
* });
* ```
* ### Docker Build Cloud
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as dockerbuild from "@pulumi/dockerbuild";
* import * as docker_build from "@pulumi/docker-build";
*
* const image = new dockerbuild.Image("image", {
* const image = new docker_build.Image("image", {
* builder: {
* name: "cloud-builder-name",
* },
@@ -358,33 +352,36 @@ import * as utilities from "./utilities";
* location: "app",
* },
* exec: true,
* push: false,
* });
* ```
* ### Build arguments
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as dockerbuild from "@pulumi/dockerbuild";
* import * as docker_build from "@pulumi/docker-build";
*
* const image = new dockerbuild.Image("image", {
* const image = new docker_build.Image("image", {
* buildArgs: {
* SET_ME_TO_TRUE: "true",
* },
* context: {
* location: "app",
* },
* push: false,
* });
* ```
* ### Build target
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as dockerbuild from "@pulumi/dockerbuild";
* import * as docker_build from "@pulumi/docker-build";
*
* const image = new dockerbuild.Image("image", {
* const image = new docker_build.Image("image", {
* context: {
* location: "app",
* },
* push: false,
* target: "build-me",
* });
* ```
@@ -392,34 +389,40 @@ import * as utilities from "./utilities";
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as dockerbuild from "@pulumi/dockerbuild";
* import * as docker_build from "@pulumi/docker-build";
*
* const image = new dockerbuild.Image("image", {context: {
* location: "app",
* named: {
* "golang:latest": {
* location: "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
* const image = new docker_build.Image("image", {
* context: {
* location: "app",
* named: {
* "golang:latest": {
* location: "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
* },
* },
* },
* }});
* push: false,
* });
* ```
* ### Remote context
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as dockerbuild from "@pulumi/dockerbuild";
* import * as docker_build from "@pulumi/docker-build";
*
* const image = new dockerbuild.Image("image", {context: {
* location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
* }});
* const image = new docker_build.Image("image", {
* context: {
* location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
* },
* push: false,
* });
* ```
* ### Inline Dockerfile
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as dockerbuild from "@pulumi/dockerbuild";
* import * as docker_build from "@pulumi/docker-build";
*
* const image = new dockerbuild.Image("image", {
* const image = new docker_build.Image("image", {
* context: {
* location: "app",
* },
@@ -428,30 +431,32 @@ import * as utilities from "./utilities";
* COPY hello.c ./
* `,
* },
* push: false,
* });
* ```
* ### Remote context
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as dockerbuild from "@pulumi/dockerbuild";
* import * as docker_build from "@pulumi/docker-build";
*
* const image = new dockerbuild.Image("image", {
* const image = new docker_build.Image("image", {
* context: {
* location: "https://github.com/docker-library/hello-world.git",
* },
* dockerfile: {
* location: "app/Dockerfile",
* },
* push: false,
* });
* ```
* ### Local export
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as dockerbuild from "@pulumi/dockerbuild";
* import * as docker_build from "@pulumi/docker-build";
*
* const image = new dockerbuild.Image("image", {
* const image = new docker_build.Image("image", {
* context: {
* location: "app",
* },
@@ -460,6 +465,7 @@ import * as utilities from "./utilities";
* tar: true,
* },
* }],
* push: false,
* });
* ```
*/
@@ -509,20 +515,17 @@ export class Image extends pulumi.CustomResource {
*/
public readonly buildArgs!: pulumi.Output<{[key: string]: string} | undefined>;
/**
* By default, preview behavior depends on the execution environment. If
* Pulumi detects the operation is running on a CI system (GitHub Actions,
* Travis CI, Azure Pipelines, etc.) then it will build images during
* previews as a safeguard. Otherwise, if not running on CI, previews will
* not build images.
*
* Setting this to `false` forces previews to never perform builds, and
* setting it to `true` will always build the image during previews.
* Setting this to `false` will always skip image builds during previews,
* and setting it to `true` will always build images during previews.
*
* Images built during previews are never exported to registries, however
* cache manifests are still exported.
*
* On-disk Dockerfiles are always validated for syntactic correctness
* regardless of this setting.
*
* Defaults to `true` as a safeguard against broken images merging as part
* of CI pipelines.
*/
public readonly buildOnPreview!: pulumi.Output<boolean | undefined>;
/**
@@ -651,7 +654,7 @@ export class Image extends pulumi.CustomResource {
*
* Equivalent to Docker's `--push` flag.
*/
public readonly push!: pulumi.Output<boolean | undefined>;
public readonly push!: pulumi.Output<boolean>;
/**
* If the image was pushed to any registries then this will contain a
* single fully-qualified tag including the build's digest.
@@ -722,13 +725,16 @@ export class Image extends pulumi.CustomResource {
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args?: ImageArgs, opts?: pulumi.CustomResourceOptions) {
constructor(name: string, args: ImageArgs, opts?: pulumi.CustomResourceOptions) {
let resourceInputs: pulumi.Inputs = {};
opts = opts || {};
if (!opts.id) {
if ((!args || args.push === undefined) && !opts.urn) {
throw new Error("Missing required property 'push'");
}
resourceInputs["addHosts"] = args ? args.addHosts : undefined;
resourceInputs["buildArgs"] = args ? args.buildArgs : undefined;
resourceInputs["buildOnPreview"] = args ? args.buildOnPreview : undefined;
resourceInputs["buildOnPreview"] = (args ? args.buildOnPreview : undefined) ?? true;
resourceInputs["builder"] = args ? args.builder : undefined;
resourceInputs["cacheFrom"] = args ? args.cacheFrom : undefined;
resourceInputs["cacheTo"] = args ? args.cacheTo : undefined;
@@ -806,20 +812,17 @@ export interface ImageArgs {
*/
buildArgs?: pulumi.Input<{[key: string]: pulumi.Input<string>}>;
/**
* By default, preview behavior depends on the execution environment. If
* Pulumi detects the operation is running on a CI system (GitHub Actions,
* Travis CI, Azure Pipelines, etc.) then it will build images during
* previews as a safeguard. Otherwise, if not running on CI, previews will
* not build images.
*
* Setting this to `false` forces previews to never perform builds, and
* setting it to `true` will always build the image during previews.
* Setting this to `false` will always skip image builds during previews,
* and setting it to `true` will always build images during previews.
*
* Images built during previews are never exported to registries, however
* cache manifests are still exported.
*
* On-disk Dockerfiles are always validated for syntactic correctness
* regardless of this setting.
*
* Defaults to `true` as a safeguard against broken images merging as part
* of CI pipelines.
*/
buildOnPreview?: pulumi.Input<boolean>;
/**
@@ -932,7 +935,7 @@ export interface ImageArgs {
*
* Equivalent to Docker's `--push` flag.
*/
push?: pulumi.Input<boolean>;
push: pulumi.Input<boolean>;
/**
* Registry credentials. Required if reading or exporting to private
* repositories.

22
sdk/nodejs/index_.ts generated
View File

@@ -8,13 +8,25 @@ import * as enums from "./types/enums";
import * as utilities from "./utilities";
/**
* An index (or manifest list) referencing one or more existing images.
* A wrapper around `docker buildx imagetools create` to create an index
* (or manifest list) referencing one or more existing images.
*
* Useful for crafting a multi-platform image from several
* platform-specific images.
* In most cases you do not need an `Index` to build a multi-platform
* image -- specifying multiple platforms on the `Image` will handle this
* for you automatically.
*
* This creates an OCI image index or a Docker manifest list depending on
* the media types of the source images.
* However, as of April 2024, building multi-platform images _with
* caching_ will only export a cache for one platform at a time (see [this
* discussion](https://github.com/docker/buildx/discussions/1382) for more
* details).
*
* Therefore this resource can be helpful if you are building
* multi-platform images with caching: each platform can be built and
* cached separately, and an `Index` can join them all together. An
* example of this is shown below.
*
* This resource creates an OCI image index or a Docker manifest list
* depending on the media types of the source images.
*
* ## Example Usage
* ### Multi-platform registry caching

View File

@@ -4,9 +4,10 @@
"keywords": [
"docker",
"buildkit",
"buildx"
"buildx",
"kind/native"
],
"homepage": "https://pulumi.io",
"homepage": "https://pulumi.com",
"repository": "https://github.com/pulumi/pulumi-docker-build",
"license": "Apache-2.0",
"scripts": {
@@ -21,7 +22,6 @@
},
"pulumi": {
"resource": true,
"name": "docker-build",
"server": "github.com/pulumi/pulumi-docker-build"
"name": "docker-build"
}
}

View File

@@ -53,7 +53,7 @@ export function getVersion(): string {
/** @internal */
export function resourceOptsDefaults(): any {
return { version: getVersion(), pluginDownloadURL: "github.com/pulumi/pulumi-docker-build" };
return { version: getVersion() };
}
/** @internal */

117
sdk/python/README.md generated
View File

@@ -1,106 +1,23 @@
# Pulumi Native Provider Boilerplate
[![Slack](http://www.pulumi.com/images/docs/badges/slack.svg)](https://slack.pulumi.com)
[![NPM version](https://badge.fury.io/js/%40pulumi%2fdocker-build.svg)](https://www.npmjs.com/package/@pulumi/docker-build)
[![Python version](https://badge.fury.io/py/pulumi-docker-build.svg)](https://pypi.org/project/pulumi-docker-build)
[![NuGet version](https://badge.fury.io/nu/pulumi.dockerbuild.svg)](https://badge.fury.io/nu/pulumi.dockerbuild)
[![PkgGoDev](https://pkg.go.dev/badge/github.com/pulumi/pulumi-docker-build/sdk/go)](https://pkg.go.dev/github.com/pulumi/pulumi-docker-build/sdk/go)
[![License](https://img.shields.io/npm/l/%40pulumi%2Fpulumi.svg)](https://github.com/pulumi/pulumi-docker-build/blob/main/LICENSE)
This repository is a boilerplate showing how to create and locally test a native Pulumi provider.
# Docker-Build Resource Provider
## Authoring a Pulumi Native Provider
A [Pulumi](http://pulumi.com) provider for building modern Docker images with [buildx](https://docs.docker.com/build/architecture/) and [BuildKit](https://docs.docker.com/build/buildkit/).
This boilerplate creates a working Pulumi-owned provider named `xyz`.
It implements a random number generator that you can [build and test out for yourself](#test-against-the-example) and then replace the Random code with code specific to your provider.
Not to be confused with the earlier
[Docker](http://github.com/pulumi/pulumi-docker) provider, which is still
appropriate for managing resources unrelated to building images.
| Provider | Use cases |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `@pulumi/docker-build` | Anything related to building images with `docker build`. |
| `@pulumi/docker` | Everything else -- including running containers and creating networks. |
### Prerequisites
## Reference
Prerequisites for this repository are already satisfied by the [Pulumi Devcontainer](https://github.com/pulumi/devcontainer) if you are using Github Codespaces, or VSCode.
If you are not using VSCode, you will need to ensure the following tools are installed and present in your `$PATH`:
* [`pulumictl`](https://github.com/pulumi/pulumictl#installation)
* [Go 1.21](https://golang.org/dl/) or 1.latest
* [NodeJS](https://nodejs.org/en/) 14.x. We recommend using [nvm](https://github.com/nvm-sh/nvm) to manage NodeJS installations.
* [Yarn](https://yarnpkg.com/)
* [TypeScript](https://www.typescriptlang.org/)
* [Python](https://www.python.org/downloads/) (called as `python3`). For recent versions of MacOS, the system-installed version is fine.
* [.NET](https://dotnet.microsoft.com/download)
### Build & test the boilerplate XYZ provider
1. Create a new Github CodeSpaces environment using this repository.
1. Open a terminal in the CodeSpaces environment.
1. Run `make build install` to build and install the provider.
1. Run `make gen_examples` to generate the example programs in `examples/` off of the source `examples/yaml` example program.
1. Run `make up` to run the example program in `examples/yaml`.
1. Run `make down` to tear down the example program.
### Creating a new provider repository
Pulumi offers this repository as a [GitHub template repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template) for convenience. From this repository:
1. Click "Use this template".
1. Set the following options:
* Owner: pulumi
* Repository name: pulumi-xyz-native (replace "xyz" with the name of your provider)
* Description: Pulumi provider for xyz
* Repository type: Public
1. Clone the generated repository.
From the templated repository:
1. Search-replace `xyz` with the name of your desired provider.
#### Build the provider and install the plugin
```bash
$ make build install
```
This will:
1. Create the SDK codegen binary and place it in a `./bin` folder (gitignored)
2. Create the provider binary and place it in the `./bin` folder (gitignored)
3. Generate the dotnet, Go, Node, and Python SDKs and place them in the `./sdk` folder
4. Install the provider on your machine.
#### Test against the example
```bash
$ cd examples/simple
$ yarn link @pulumi/xyz
$ yarn install
$ pulumi stack init test
$ pulumi up
```
Now that you have completed all of the above steps, you have a working provider that generates a random string for you.
#### A brief repository overview
You now have:
1. A `provider/` folder containing the building and implementation logic
1. `cmd/pulumi-resource-xyz/main.go` - holds the provider's sample implementation logic.
2. `deployment-templates` - a set of files to help you around deployment and publication
3. `sdk` - holds the generated code libraries created by `pulumi-gen-xyz/main.go`
4. `examples` a folder of Pulumi programs to try locally and/or use in CI.
5. A `Makefile` and this `README`.
#### Additional Details
This repository depends on the pulumi-go-provider library. For more details on building providers, please check
the [Pulumi Go Provider docs](https://github.com/pulumi/pulumi-go-provider).
### Build Examples
Create an example program using the resources defined in your provider, and place it in the `examples/` folder.
You can now repeat the steps for [build, install, and test](#test-against-the-example).
## Configuring CI and releases
1. Follow the instructions laid out in the [deployment templates](./deployment-templates/README-DEPLOYMENT.md).
## References
Other resources/examples for implementing providers:
* [Pulumi Command provider](https://github.com/pulumi/pulumi-command/blob/master/provider/pkg/provider/provider.go)
* [Pulumi Go Provider repository](https://github.com/pulumi/pulumi-go-provider)
For more information, including examples and migration guidance, please see the Docker-Build provider's detailed [API documentation](https://www.pulumi.com/registry/packages/docker-build/).

View File

@@ -1 +1 @@
A Pulumi provider for Docker buildx
A Pulumi provider for building modern Docker images with buildx and BuildKit.

View File

@@ -288,4 +288,4 @@ async def _await_output(o: pulumi.Output[typing.Any]) -> typing.Tuple[object, bo
)
def get_plugin_download_url():
return "github.com/pulumi/pulumi-docker-build"
return None

View File

@@ -17,6 +17,7 @@ __all__ = ['ImageArgs', 'Image']
@pulumi.input_type
class ImageArgs:
def __init__(__self__, *,
push: pulumi.Input[bool],
add_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
build_args: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
build_on_preview: Optional[pulumi.Input[bool]] = None,
@@ -33,7 +34,6 @@ class ImageArgs:
no_cache: Optional[pulumi.Input[bool]] = None,
platforms: Optional[pulumi.Input[Sequence[pulumi.Input['Platform']]]] = None,
pull: Optional[pulumi.Input[bool]] = None,
push: Optional[pulumi.Input[bool]] = None,
registries: Optional[pulumi.Input[Sequence[pulumi.Input['RegistryArgs']]]] = None,
secrets: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
ssh: Optional[pulumi.Input[Sequence[pulumi.Input['SSHArgs']]]] = None,
@@ -41,6 +41,11 @@ class ImageArgs:
target: Optional[pulumi.Input[str]] = None):
"""
The set of arguments for constructing a Image resource.
:param pulumi.Input[bool] push: When `true` the build will automatically include a `registry` export.
Defaults to `false`.
Equivalent to Docker's `--push` flag.
:param pulumi.Input[Sequence[pulumi.Input[str]]] add_hosts: Custom `host:ip` mappings to use during the build.
Equivalent to Docker's `--add-host` flag.
@@ -53,20 +58,17 @@ class ImageArgs:
if these arguments are sensitive.
Equivalent to Docker's `--build-arg` flag.
:param pulumi.Input[bool] build_on_preview: By default, preview behavior depends on the execution environment. If
Pulumi detects the operation is running on a CI system (GitHub Actions,
Travis CI, Azure Pipelines, etc.) then it will build images during
previews as a safeguard. Otherwise, if not running on CI, previews will
not build images.
Setting this to `false` forces previews to never perform builds, and
setting it to `true` will always build the image during previews.
:param pulumi.Input[bool] build_on_preview: Setting this to `false` will always skip image builds during previews,
and setting it to `true` will always build images during previews.
Images built during previews are never exported to registries, however
cache manifests are still exported.
On-disk Dockerfiles are always validated for syntactic correctness
regardless of this setting.
Defaults to `true` as a safeguard against broken images merging as part
of CI pipelines.
:param pulumi.Input['BuilderConfigArgs'] builder: Builder configuration.
:param pulumi.Input[Sequence[pulumi.Input['CacheFromArgs']]] cache_from: Cache export configuration.
@@ -131,11 +133,6 @@ class ImageArgs:
:param pulumi.Input[bool] pull: Always pull referenced images.
Equivalent to Docker's `--pull` flag.
:param pulumi.Input[bool] push: When `true` the build will automatically include a `registry` export.
Defaults to `false`.
Equivalent to Docker's `--push` flag.
:param pulumi.Input[Sequence[pulumi.Input['RegistryArgs']]] registries: Registry credentials. Required if reading or exporting to private
repositories.
@@ -167,10 +164,13 @@ class ImageArgs:
Equivalent to Docker's `--target` flag.
"""
pulumi.set(__self__, "push", push)
if add_hosts is not None:
pulumi.set(__self__, "add_hosts", add_hosts)
if build_args is not None:
pulumi.set(__self__, "build_args", build_args)
if build_on_preview is None:
build_on_preview = True
if build_on_preview is not None:
pulumi.set(__self__, "build_on_preview", build_on_preview)
if builder is not None:
@@ -201,8 +201,6 @@ class ImageArgs:
pulumi.set(__self__, "platforms", platforms)
if pull is not None:
pulumi.set(__self__, "pull", pull)
if push is not None:
pulumi.set(__self__, "push", push)
if registries is not None:
pulumi.set(__self__, "registries", registries)
if secrets is not None:
@@ -214,6 +212,22 @@ class ImageArgs:
if target is not None:
pulumi.set(__self__, "target", target)
@property
@pulumi.getter
def push(self) -> pulumi.Input[bool]:
"""
When `true` the build will automatically include a `registry` export.
Defaults to `false`.
Equivalent to Docker's `--push` flag.
"""
return pulumi.get(self, "push")
@push.setter
def push(self, value: pulumi.Input[bool]):
pulumi.set(self, "push", value)
@property
@pulumi.getter(name="addHosts")
def add_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
@@ -252,20 +266,17 @@ class ImageArgs:
@pulumi.getter(name="buildOnPreview")
def build_on_preview(self) -> Optional[pulumi.Input[bool]]:
"""
By default, preview behavior depends on the execution environment. If
Pulumi detects the operation is running on a CI system (GitHub Actions,
Travis CI, Azure Pipelines, etc.) then it will build images during
previews as a safeguard. Otherwise, if not running on CI, previews will
not build images.
Setting this to `false` forces previews to never perform builds, and
setting it to `true` will always build the image during previews.
Setting this to `false` will always skip image builds during previews,
and setting it to `true` will always build images during previews.
Images built during previews are never exported to registries, however
cache manifests are still exported.
On-disk Dockerfiles are always validated for syntactic correctness
regardless of this setting.
Defaults to `true` as a safeguard against broken images merging as part
of CI pipelines.
"""
return pulumi.get(self, "build_on_preview")
@@ -480,22 +491,6 @@ class ImageArgs:
def pull(self, value: Optional[pulumi.Input[bool]]):
pulumi.set(self, "pull", value)
@property
@pulumi.getter
def push(self) -> Optional[pulumi.Input[bool]]:
"""
When `true` the build will automatically include a `registry` export.
Defaults to `false`.
Equivalent to Docker's `--push` flag.
"""
return pulumi.get(self, "push")
@push.setter
def push(self, value: Optional[pulumi.Input[bool]]):
pulumi.set(self, "push", value)
@property
@pulumi.getter
def registries(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegistryArgs']]]]:
@@ -616,20 +611,14 @@ class Image(pulumi.CustomResource):
## Stability
**This resource is experimental and subject to change.**
**This resource is pre-1.0 and in public preview.**
API types are unstable. Subsequent releases _may_ require manual edits
to your state file(s) in order to adopt API changes.
We will strive to keep APIs and behavior as stable as possible, but we
cannot guarantee stability until version 1.0.
`retainOnDelete: true` is recommended with this resource until it is
stable. This enables future API changes to be adopted more easily by renaming
resources.
## Migrating Pulumi Docker v3 and v4 Image resources
Only use this resource if you understand and accept the risks.
## Migrating v3 and v4 Image resources
The `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
This provider's `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
Existing `Image` resources can be converted to the docker-build `Image` resources with minor modifications.
### Behavioral differences
@@ -643,19 +632,17 @@ class Image(pulumi.CustomResource):
Version `4.x` changed build-on-preview behavior to be opt-in.
By default, `v4.x` `Image` resources do _not_ build during previews, but this behavior can be toggled with the `buildOnPreview` option.
Some users felt this made previews in CI less helpful because they no longer detected bad images by default.
Several users reported outages due to the default behavior allowing bad images to accidentally sneak through CI.
The default behavior of the `Image` resource has been changed to strike a better balance between CI use cases and manual updates.
By default, Pulumi will now only build `Image` resources during previews when it detects a CI environment like GitHub Actions.
Previews run in non-CI environments will not build images.
This behavior is still configurable with `buildOnPreview`.
The default behavior of this provider's `Image` resource is similar to `3.x` and will build images during previews.
This behavior can be changed by specifying `buildOnPreview`.
#### Push behavior
Versions `3.x` and `4.x` of the Pulumi Docker provider attempt to push images to remote registries by default.
They expose a `skipPush: true` option to disable pushing.
The `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
This provider's `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
To push images to a registry you can include `push: true` (equivalent to Docker's `--push` flag) or configure an `export` of type `registry` (equivalent to Docker's `--output type=registry`).
Like Docker, if an image is configured without exports you will see a warning with instructions for how to enable pushing, but the build will still proceed normally.
@@ -726,28 +713,28 @@ class Image(pulumi.CustomResource):
```python
import pulumi
import pulumi_aws as aws
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
ecr_repository = aws.ecr.Repository("ecr-repository")
auth_token = aws.ecr.get_authorization_token_output(registry_id=ecr_repository.registry_id)
my_image = dockerbuild.Image("my-image",
cache_from=[dockerbuild.CacheFromArgs(
registry=dockerbuild.CacheFromRegistryArgs(
my_image = docker_build.Image("my-image",
cache_from=[docker_build.CacheFromArgs(
registry=docker_build.CacheFromRegistryArgs(
ref=ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
),
)],
cache_to=[dockerbuild.CacheToArgs(
registry=dockerbuild.CacheToRegistryArgs(
cache_to=[docker_build.CacheToArgs(
registry=docker_build.CacheToRegistryArgs(
image_manifest=True,
oci_media_types=True,
ref=ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
),
)],
context=dockerbuild.BuildContextArgs(
context=docker_build.BuildContextArgs(
location="./app",
),
push=True,
registries=[dockerbuild.RegistryArgs(
registries=[docker_build.RegistryArgs(
address=ecr_repository.repository_url,
password=auth_token.password,
username=auth_token.user_name,
@@ -758,28 +745,29 @@ class Image(pulumi.CustomResource):
### Multi-platform image
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
context=dockerbuild.BuildContextArgs(
image = docker_build.Image("image",
context=docker_build.BuildContextArgs(
location="app",
),
platforms=[
dockerbuild.Platform.PLAN9_AMD64,
dockerbuild.Platform.PLAN9_386,
])
docker_build.Platform.PLAN9_AMD64,
docker_build.Platform.PLAN9_386,
],
push=False)
```
### Registry export
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
context=dockerbuild.BuildContextArgs(
image = docker_build.Image("image",
context=docker_build.BuildContextArgs(
location="app",
),
push=True,
registries=[dockerbuild.RegistryArgs(
registries=[docker_build.RegistryArgs(
address="docker.io",
password=docker_hub_password,
username="pulumibot",
@@ -790,127 +778,138 @@ class Image(pulumi.CustomResource):
### Caching
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
cache_from=[dockerbuild.CacheFromArgs(
local=dockerbuild.CacheFromLocalArgs(
image = docker_build.Image("image",
cache_from=[docker_build.CacheFromArgs(
local=docker_build.CacheFromLocalArgs(
src="tmp/cache",
),
)],
cache_to=[dockerbuild.CacheToArgs(
local=dockerbuild.CacheToLocalArgs(
cache_to=[docker_build.CacheToArgs(
local=docker_build.CacheToLocalArgs(
dest="tmp/cache",
mode=dockerbuild.CacheMode.MAX,
mode=docker_build.CacheMode.MAX,
),
)],
context=dockerbuild.BuildContextArgs(
context=docker_build.BuildContextArgs(
location="app",
))
),
push=False)
```
### Docker Build Cloud
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
builder=dockerbuild.BuilderConfigArgs(
image = docker_build.Image("image",
builder=docker_build.BuilderConfigArgs(
name="cloud-builder-name",
),
context=dockerbuild.BuildContextArgs(
context=docker_build.BuildContextArgs(
location="app",
),
exec_=True)
exec_=True,
push=False)
```
### Build arguments
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
image = docker_build.Image("image",
build_args={
"SET_ME_TO_TRUE": "true",
},
context=dockerbuild.BuildContextArgs(
context=docker_build.BuildContextArgs(
location="app",
))
),
push=False)
```
### Build target
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
context=dockerbuild.BuildContextArgs(
image = docker_build.Image("image",
context=docker_build.BuildContextArgs(
location="app",
),
push=False,
target="build-me")
```
### Named contexts
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image", context=dockerbuild.BuildContextArgs(
location="app",
named={
"golang:latest": dockerbuild.ContextArgs(
location="docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
),
},
))
image = docker_build.Image("image",
context=docker_build.BuildContextArgs(
location="app",
named={
"golang:latest": docker_build.ContextArgs(
location="docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
),
},
),
push=False)
```
### Remote context
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image", context=dockerbuild.BuildContextArgs(
location="https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
))
image = docker_build.Image("image",
context=docker_build.BuildContextArgs(
location="https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
),
push=False)
```
### Inline Dockerfile
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
context=dockerbuild.BuildContextArgs(
image = docker_build.Image("image",
context=docker_build.BuildContextArgs(
location="app",
),
dockerfile=dockerbuild.DockerfileArgs(
dockerfile=docker_build.DockerfileArgs(
inline=\"\"\"FROM busybox
COPY hello.c ./
\"\"\",
))
),
push=False)
```
### Remote context
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
context=dockerbuild.BuildContextArgs(
image = docker_build.Image("image",
context=docker_build.BuildContextArgs(
location="https://github.com/docker-library/hello-world.git",
),
dockerfile=dockerbuild.DockerfileArgs(
dockerfile=docker_build.DockerfileArgs(
location="app/Dockerfile",
))
),
push=False)
```
### Local export
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
context=dockerbuild.BuildContextArgs(
image = docker_build.Image("image",
context=docker_build.BuildContextArgs(
location="app",
),
exports=[dockerbuild.ExportArgs(
docker=dockerbuild.ExportDockerArgs(
exports=[docker_build.ExportArgs(
docker=docker_build.ExportDockerArgs(
tar=True,
),
)])
)],
push=False)
```
:param str resource_name: The name of the resource.
@@ -927,20 +926,17 @@ class Image(pulumi.CustomResource):
if these arguments are sensitive.
Equivalent to Docker's `--build-arg` flag.
:param pulumi.Input[bool] build_on_preview: By default, preview behavior depends on the execution environment. If
Pulumi detects the operation is running on a CI system (GitHub Actions,
Travis CI, Azure Pipelines, etc.) then it will build images during
previews as a safeguard. Otherwise, if not running on CI, previews will
not build images.
Setting this to `false` forces previews to never perform builds, and
setting it to `true` will always build the image during previews.
:param pulumi.Input[bool] build_on_preview: Setting this to `false` will always skip image builds during previews,
and setting it to `true` will always build images during previews.
Images built during previews are never exported to registries, however
cache manifests are still exported.
On-disk Dockerfiles are always validated for syntactic correctness
regardless of this setting.
Defaults to `true` as a safeguard against broken images merging as part
of CI pipelines.
:param pulumi.Input[pulumi.InputType['BuilderConfigArgs']] builder: Builder configuration.
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CacheFromArgs']]]] cache_from: Cache export configuration.
@@ -1045,7 +1041,7 @@ class Image(pulumi.CustomResource):
@overload
def __init__(__self__,
resource_name: str,
args: Optional[ImageArgs] = None,
args: ImageArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
A Docker image built using buildx -- Docker's interface to the improved
@@ -1053,20 +1049,14 @@ class Image(pulumi.CustomResource):
## Stability
**This resource is experimental and subject to change.**
**This resource is pre-1.0 and in public preview.**
API types are unstable. Subsequent releases _may_ require manual edits
to your state file(s) in order to adopt API changes.
We will strive to keep APIs and behavior as stable as possible, but we
cannot guarantee stability until version 1.0.
`retainOnDelete: true` is recommended with this resource until it is
stable. This enables future API changes to be adopted more easily by renaming
resources.
## Migrating Pulumi Docker v3 and v4 Image resources
Only use this resource if you understand and accept the risks.
## Migrating v3 and v4 Image resources
The `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
This provider's `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
Existing `Image` resources can be converted to the docker-build `Image` resources with minor modifications.
### Behavioral differences
@@ -1080,19 +1070,17 @@ class Image(pulumi.CustomResource):
Version `4.x` changed build-on-preview behavior to be opt-in.
By default, `v4.x` `Image` resources do _not_ build during previews, but this behavior can be toggled with the `buildOnPreview` option.
Some users felt this made previews in CI less helpful because they no longer detected bad images by default.
Several users reported outages due to the default behavior allowing bad images to accidentally sneak through CI.
The default behavior of the `Image` resource has been changed to strike a better balance between CI use cases and manual updates.
By default, Pulumi will now only build `Image` resources during previews when it detects a CI environment like GitHub Actions.
Previews run in non-CI environments will not build images.
This behavior is still configurable with `buildOnPreview`.
The default behavior of this provider's `Image` resource is similar to `3.x` and will build images during previews.
This behavior can be changed by specifying `buildOnPreview`.
#### Push behavior
Versions `3.x` and `4.x` of the Pulumi Docker provider attempt to push images to remote registries by default.
They expose a `skipPush: true` option to disable pushing.
The `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
This provider's `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
To push images to a registry you can include `push: true` (equivalent to Docker's `--push` flag) or configure an `export` of type `registry` (equivalent to Docker's `--output type=registry`).
Like Docker, if an image is configured without exports you will see a warning with instructions for how to enable pushing, but the build will still proceed normally.
@@ -1163,28 +1151,28 @@ class Image(pulumi.CustomResource):
```python
import pulumi
import pulumi_aws as aws
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
ecr_repository = aws.ecr.Repository("ecr-repository")
auth_token = aws.ecr.get_authorization_token_output(registry_id=ecr_repository.registry_id)
my_image = dockerbuild.Image("my-image",
cache_from=[dockerbuild.CacheFromArgs(
registry=dockerbuild.CacheFromRegistryArgs(
my_image = docker_build.Image("my-image",
cache_from=[docker_build.CacheFromArgs(
registry=docker_build.CacheFromRegistryArgs(
ref=ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
),
)],
cache_to=[dockerbuild.CacheToArgs(
registry=dockerbuild.CacheToRegistryArgs(
cache_to=[docker_build.CacheToArgs(
registry=docker_build.CacheToRegistryArgs(
image_manifest=True,
oci_media_types=True,
ref=ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
),
)],
context=dockerbuild.BuildContextArgs(
context=docker_build.BuildContextArgs(
location="./app",
),
push=True,
registries=[dockerbuild.RegistryArgs(
registries=[docker_build.RegistryArgs(
address=ecr_repository.repository_url,
password=auth_token.password,
username=auth_token.user_name,
@@ -1195,28 +1183,29 @@ class Image(pulumi.CustomResource):
### Multi-platform image
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
context=dockerbuild.BuildContextArgs(
image = docker_build.Image("image",
context=docker_build.BuildContextArgs(
location="app",
),
platforms=[
dockerbuild.Platform.PLAN9_AMD64,
dockerbuild.Platform.PLAN9_386,
])
docker_build.Platform.PLAN9_AMD64,
docker_build.Platform.PLAN9_386,
],
push=False)
```
### Registry export
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
context=dockerbuild.BuildContextArgs(
image = docker_build.Image("image",
context=docker_build.BuildContextArgs(
location="app",
),
push=True,
registries=[dockerbuild.RegistryArgs(
registries=[docker_build.RegistryArgs(
address="docker.io",
password=docker_hub_password,
username="pulumibot",
@@ -1227,127 +1216,138 @@ class Image(pulumi.CustomResource):
### Caching
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
cache_from=[dockerbuild.CacheFromArgs(
local=dockerbuild.CacheFromLocalArgs(
image = docker_build.Image("image",
cache_from=[docker_build.CacheFromArgs(
local=docker_build.CacheFromLocalArgs(
src="tmp/cache",
),
)],
cache_to=[dockerbuild.CacheToArgs(
local=dockerbuild.CacheToLocalArgs(
cache_to=[docker_build.CacheToArgs(
local=docker_build.CacheToLocalArgs(
dest="tmp/cache",
mode=dockerbuild.CacheMode.MAX,
mode=docker_build.CacheMode.MAX,
),
)],
context=dockerbuild.BuildContextArgs(
context=docker_build.BuildContextArgs(
location="app",
))
),
push=False)
```
### Docker Build Cloud
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
builder=dockerbuild.BuilderConfigArgs(
image = docker_build.Image("image",
builder=docker_build.BuilderConfigArgs(
name="cloud-builder-name",
),
context=dockerbuild.BuildContextArgs(
context=docker_build.BuildContextArgs(
location="app",
),
exec_=True)
exec_=True,
push=False)
```
### Build arguments
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
image = docker_build.Image("image",
build_args={
"SET_ME_TO_TRUE": "true",
},
context=dockerbuild.BuildContextArgs(
context=docker_build.BuildContextArgs(
location="app",
))
),
push=False)
```
### Build target
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
context=dockerbuild.BuildContextArgs(
image = docker_build.Image("image",
context=docker_build.BuildContextArgs(
location="app",
),
push=False,
target="build-me")
```
### Named contexts
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image", context=dockerbuild.BuildContextArgs(
location="app",
named={
"golang:latest": dockerbuild.ContextArgs(
location="docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
),
},
))
image = docker_build.Image("image",
context=docker_build.BuildContextArgs(
location="app",
named={
"golang:latest": docker_build.ContextArgs(
location="docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
),
},
),
push=False)
```
### Remote context
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image", context=dockerbuild.BuildContextArgs(
location="https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
))
image = docker_build.Image("image",
context=docker_build.BuildContextArgs(
location="https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
),
push=False)
```
### Inline Dockerfile
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
context=dockerbuild.BuildContextArgs(
image = docker_build.Image("image",
context=docker_build.BuildContextArgs(
location="app",
),
dockerfile=dockerbuild.DockerfileArgs(
dockerfile=docker_build.DockerfileArgs(
inline=\"\"\"FROM busybox
COPY hello.c ./
\"\"\",
))
),
push=False)
```
### Remote context
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
context=dockerbuild.BuildContextArgs(
image = docker_build.Image("image",
context=docker_build.BuildContextArgs(
location="https://github.com/docker-library/hello-world.git",
),
dockerfile=dockerbuild.DockerfileArgs(
dockerfile=docker_build.DockerfileArgs(
location="app/Dockerfile",
))
),
push=False)
```
### Local export
```python
import pulumi
import pulumi_dockerbuild as dockerbuild
import pulumi_docker_build as docker_build
image = dockerbuild.Image("image",
context=dockerbuild.BuildContextArgs(
image = docker_build.Image("image",
context=docker_build.BuildContextArgs(
location="app",
),
exports=[dockerbuild.ExportArgs(
docker=dockerbuild.ExportDockerArgs(
exports=[docker_build.ExportArgs(
docker=docker_build.ExportDockerArgs(
tar=True,
),
)])
)],
push=False)
```
:param str resource_name: The name of the resource.
@@ -1398,6 +1398,8 @@ class Image(pulumi.CustomResource):
__props__.__dict__["add_hosts"] = add_hosts
__props__.__dict__["build_args"] = build_args
if build_on_preview is None:
build_on_preview = True
__props__.__dict__["build_on_preview"] = build_on_preview
__props__.__dict__["builder"] = builder
__props__.__dict__["cache_from"] = cache_from
@@ -1414,6 +1416,8 @@ class Image(pulumi.CustomResource):
__props__.__dict__["no_cache"] = no_cache
__props__.__dict__["platforms"] = platforms
__props__.__dict__["pull"] = pull
if push is None and not opts.urn:
raise TypeError("Missing required property 'push'")
__props__.__dict__["push"] = push
__props__.__dict__["registries"] = registries
__props__.__dict__["secrets"] = secrets
@@ -1502,20 +1506,17 @@ class Image(pulumi.CustomResource):
@pulumi.getter(name="buildOnPreview")
def build_on_preview(self) -> pulumi.Output[Optional[bool]]:
"""
By default, preview behavior depends on the execution environment. If
Pulumi detects the operation is running on a CI system (GitHub Actions,
Travis CI, Azure Pipelines, etc.) then it will build images during
previews as a safeguard. Otherwise, if not running on CI, previews will
not build images.
Setting this to `false` forces previews to never perform builds, and
setting it to `true` will always build the image during previews.
Setting this to `false` will always skip image builds during previews,
and setting it to `true` will always build images during previews.
Images built during previews are never exported to registries, however
cache manifests are still exported.
On-disk Dockerfiles are always validated for syntactic correctness
regardless of this setting.
Defaults to `true` as a safeguard against broken images merging as part
of CI pipelines.
"""
return pulumi.get(self, "build_on_preview")
@@ -1700,7 +1701,7 @@ class Image(pulumi.CustomResource):
@property
@pulumi.getter
def push(self) -> pulumi.Output[Optional[bool]]:
def push(self) -> pulumi.Output[bool]:
"""
When `true` the build will automatically include a `registry` export.

View File

@@ -104,13 +104,25 @@ class Index(pulumi.CustomResource):
tag: Optional[pulumi.Input[str]] = None,
__props__=None):
"""
An index (or manifest list) referencing one or more existing images.
A wrapper around `docker buildx imagetools create` to create an index
(or manifest list) referencing one or more existing images.
Useful for crafting a multi-platform image from several
platform-specific images.
In most cases you do not need an `Index` to build a multi-platform
image -- specifying multiple platforms on the `Image` will handle this
for you automatically.
This creates an OCI image index or a Docker manifest list depending on
the media types of the source images.
However, as of April 2024, building multi-platform images _with
caching_ will only export a cache for one platform at a time (see [this
discussion](https://github.com/docker/buildx/discussions/1382) for more
details).
Therefore this resource can be helpful if you are building
multi-platform images with caching: each platform can be built and
cached separately, and an `Index` can join them all together. An
example of this is shown below.
This resource creates an OCI image index or a Docker manifest list
depending on the media types of the source images.
## Example Usage
### Multi-platform registry caching
@@ -179,13 +191,25 @@ class Index(pulumi.CustomResource):
args: IndexArgs,
opts: Optional[pulumi.ResourceOptions] = None):
"""
An index (or manifest list) referencing one or more existing images.
A wrapper around `docker buildx imagetools create` to create an index
(or manifest list) referencing one or more existing images.
Useful for crafting a multi-platform image from several
platform-specific images.
In most cases you do not need an `Index` to build a multi-platform
image -- specifying multiple platforms on the `Image` will handle this
for you automatically.
This creates an OCI image index or a Docker manifest list depending on
the media types of the source images.
However, as of April 2024, building multi-platform images _with
caching_ will only export a cache for one platform at a time (see [this
discussion](https://github.com/docker/buildx/discussions/1382) for more
details).
Therefore this resource can be helpful if you are building
multi-platform images with caching: each platform can be built and
cached separately, and an `Index` can join them all together. An
example of this is shown below.
This resource creates an OCI image index or a Docker manifest list
depending on the media types of the source images.
## Example Usage
### Multi-platform registry caching

View File

@@ -1,5 +1,4 @@
{
"resource": true,
"name": "docker-build",
"server": "github.com/pulumi/pulumi-docker-build"
"name": "docker-build"
}

View File

@@ -1,15 +1,15 @@
[project]
name = "pulumi_docker_build"
description = "A Pulumi provider for Docker buildx"
description = "A Pulumi provider for building modern Docker images with buildx and BuildKit."
dependencies = ["parver>=0.2.1", "pulumi>=3.0.0,<4.0.0", "semver>=2.8.1"]
keywords = ["docker", "buildkit", "buildx"]
keywords = ["docker", "buildkit", "buildx", "kind/native"]
readme = "README.md"
requires-python = ">=3.8"
version = "0.0.0"
[project.license]
text = "Apache-2.0"
[project.urls]
Homepage = "https://pulumi.io"
Homepage = "https://pulumi.com"
Repository = "https://github.com/pulumi/pulumi-docker-build"
[build-system]