Buildg: A tool to interactively debug Dockerfile

Related tags

DevOps Tools buildg
Overview

buildg: A tool to interactively debug Dockerfile

buildg is a tool to interactively debug Dockerfile based on BuildKit.

  • Source-level inspection
  • Breakpoints and step execution
  • Interactive shell on a step with your own debugigng tools
  • Based on BuildKit (needs unmerged patches)
  • Supports rootless

early stage software This is implemented based on BuildKit with some unmerged patches. We're planning to upstream them.

How to use

buildg debug /path/to/build/context

To use your own image for debugging steps:

buildg debug --image=debugging-tools /path/to/build/context

Exmaple

Debug the following Dockerfile:

FROM busybox AS build1
RUN echo hello > /hello

FROM busybox AS build2
RUN echo hi > /hi

FROM scratch
COPY --from=build1 /hello /
COPY --from=build2 /hi /

Store this Dockerfile to somewhere (e.g. /tmp/ctx/Dockerfile) then run buildg debug. buildg.sh can be used for rootless execution (discussed later).

/hello 3| 4| FROM busybox AS build2 => 5| RUN echo hi > /hi 6| 7| FROM scratch 8| COPY --from=build1 /hello / >>> break 2 >>> breakpoints [0]: line: Dockerfile:2 [on-fail]: breaks on fail >>> continue #4 extracting sha256:50e8d59317eb665383b2ef4d9434aeaa394dcd6f54b96bb7810fdde583e9c2d1 0.0s done #4 DONE 0.3s #5 [build1 2/2] RUN echo hello > /hello #5 ... #6 [build2 2/2] RUN echo hi > /hi Breakpoint: line: Dockerfile:2: reached Filename: "Dockerfile" 1| FROM busybox AS build1 *=> 2| RUN echo hello > /hello 3| 4| FROM busybox AS build2 5| RUN echo hi > /hi >>> exec --image sh # cat /etc/os-release PRETTY_NAME="Ubuntu 22.04 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=jammy # ls /debugroot/ bin dev etc hello home proc root tmp usr var # cat /debugroot/hello hello # >>> quit">
$ buildg.sh debug --image=ubuntu:22.04 /tmp/ctx
WARN[2022-05-10T10:21:14Z] using host network as the default            
#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 195B done
#1 DONE 0.1s

#2 [internal] load .dockerignore
#2 transferring context: 2B done
#2 DONE 0.1s

#3 [internal] load metadata for docker.io/library/busybox:latest
#3 DONE 3.1s

#4 [build2 1/2] FROM docker.io/library/[email protected]:d2b53584f580310186df7a2055ce3ff83cc0df6caacf1e3489bff8cf5d0af5d8
#4 resolve docker.io/library/[email protected]:d2b53584f580310186df7a2055ce3ff83cc0df6caacf1e3489bff8cf5d0af5d8 0.0s done
#4 sha256:50e8d59317eb665383b2ef4d9434aeaa394dcd6f54b96bb7810fdde583e9c2d1 772.81kB / 772.81kB 0.2s done
Filename: "Dockerfile"
      2| RUN echo hello > /hello
      3| 
      4| FROM busybox AS build2
 =>   5| RUN echo hi > /hi
      6| 
      7| FROM scratch
      8| COPY --from=build1 /hello /
>>> break 2
>>> breakpoints
[0]: line: Dockerfile:2
[on-fail]: breaks on fail
>>> continue
#4 extracting sha256:50e8d59317eb665383b2ef4d9434aeaa394dcd6f54b96bb7810fdde583e9c2d1 0.0s done
#4 DONE 0.3s

#5 [build1 2/2] RUN echo hello > /hello
#5 ...

#6 [build2 2/2] RUN echo hi > /hi
Breakpoint: line: Dockerfile:2: reached
Filename: "Dockerfile"
      1| FROM busybox AS build1
*=>   2| RUN echo hello > /hello
      3| 
      4| FROM busybox AS build2
      5| RUN echo hi > /hi
>>> exec --image sh
# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
# ls /debugroot/
bin  dev  etc  hello  home  proc  root	tmp  usr  var
# cat /debugroot/hello
hello
# 
>>> quit

Install

Release binaries

Available from https://github.com/ktock/buildg/releases

Building using make

Go 1.18+ is needed.

$ git clone https://github.com/ktock/buildg
$ cd buildg
$ make
$ sudo make install

Rootless mode

Install and use buildg.sh. RootlessKit and slirp4netns are needed.

$ buildg.sh debug /tmp/mybuild

The doc in BuildKit project for troubleshooting: https://github.com/moby/buildkit/blob/master/docs/rootless.md#troubleshooting

Motivation

Debugging a large and complex Dockerfile isn't easy and can take a long time. The goal of buildg is to solve it by providing a way to insepct the detailed execution state of a Dockerfile in an interactive and easy-to-use UI/UX.

BuildKit project has been working on better debugging support (e.g. moby/buildkit#2813, moby/buildkit#1472, moby/buildkit#749). Leveraging the generic features added through the work, this project implements a PoC for providing easy UI/UX to debug Dockerfile.

Similar projects

  • buildctl by BuildKit : has debug commands to inspect buildkitd, LLB, etc. but no interactive debugging for builds.
  • cntr : allows attaching and debugging containers but no interactive debugging for builds.
  • ctr by containerd : allows directly controlling and inspecting containerd resources (e.g. contents, snapshots, etc.) but no interactive debugging for builds.

Command reference

$ buildg --help
NAME:
   buildg - A debug tool for Dockerfile based on BuildKit

USAGE:
   buildg [global options] command [command options] [arguments...]

COMMANDS:
   debug    Debug a build
   version  Version info
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --debug     enable debug logs
   --help, -h  show help

buildg debug

$ buildg debug --help
NAME:
   buildg debug - Debug a build

USAGE:
   buildg debug [command options] [arguments...]

OPTIONS:
   --file value, -f value       Name of the Dockerfile
   --target value               Target build stage to build.
   --build-arg value            Build-time variables
   --oci-worker-net value       Worker network type: "auto", "cni", "host" (default: "auto")
   --image value                Image to use for debugging stage
   --oci-cni-config-path value  Path to CNI config file (default: "/etc/buildkit/cni.json")
   --oci-cni-binary-path value  Path to CNI plugin binary dir (default: "/opt/cni/bin")
   --rootless                   Enable rootless configuration

Debug commands

COMMANDS:

break, b BREAKPOINT_SPEC  set a breakpoint
  BREAKPOINT_SPEC
    NUMBER   line number in Dockerfile
    on-fail  step that returns an error
breakpoints, bp           list breakpoints
clear BREAKPOINT_KEY      clear a breakpoint
clearall                  clear all breakpoints
next, n                   proceed to the next line
continue, c               proceed to the next breakpoint
exec, e [OPTIONS] ARG...  execute command in the step
  OPTIONS
    --image          use debugger image
    --mountroot=DIR  mountpoint to mount the rootfs of the step. ignored if --image isn't specified.
    --init           execute commands in an initial state of that step (experimental)
list, ls, l [OPTIONS]     list lines
  OPTIONS
    --all  list all lines in the source file
exit, quit, q             exit the debugging
Comments
  • chore: use cache-to & cache-from options with GHA mode

    chore: use cache-to & cache-from options with GHA mode

    Signed-off-by: Batuhan Apaydın [email protected]

    use gha cache for speeding up the containerize process

    https://github.com/developer-guy/buildg/actions/runs/3050865102 Screen Shot 2022-09-14 at 10 41 26 AM Screen Shot 2022-09-14 at 10 40 54 AM

    /cc @ktock

    opened by developer-guy 7
  • add macOS support

    add macOS support

    We (w/@dentrax) can use os-matrix to build an artifact suitable for macOS, is it possible to build a buildg tool for macOS from a technical standpoint?

    jobs:
      build:
        runs-on: ${{ matrix.os }}
        strategy:
          matrix:
            os: [macos-latest, ubuntu-latest, windows-latest]
    
    enhancement help wanted platform/macOS 
    opened by developer-guy 6
  • Bump github.com/containerd/containerd from 1.6.9 to 1.6.10

    Bump github.com/containerd/containerd from 1.6.9 to 1.6.10

    Bumps github.com/containerd/containerd from 1.6.9 to 1.6.10.

    Release notes

    Sourced from github.com/containerd/containerd's releases.

    containerd 1.6.10

    Welcome to the v1.6.10 release of containerd!

    The tenth patch release for containerd 1.6 contains various fixes, including a CVE fix for Windows platforms.

    Notable Updates

    • Always check userxattr for overlay on kernels >= 5.11 (#7646)
    • Bump hcsshim to 0.9.5 to fix container shutdown bug on Windows (#7610
    • Bump Go version to 1.18.8 to address CVE-2022-41716 (#7634)

    See the changelog for complete list of changes

    Please try out the release binaries and report any issues at https://github.com/containerd/containerd/issues.

    Contributors

    • Akihiro Suda
    • Danny Canter
    • Kazuyoshi Kato
    • Austin Vazquez
    • Derek McGowan
    • Gavin Inglis
    • Kathryn Baldauf
    • Kevin Parsons
    • Phil Estes
    • Sebastiaan van Stijn
    • Yasin Turan

    Changes

    • [release/1.6] Prepare release notes for v1.6.10 (#7664)
      • Prepare release notes for v1.6.10
    • [release/1.6] overlayutils: Add fastpath for userxattr check (#7646)
      • overlayutils: Add fastpath for userxattr check
    • [release/1.6] update to Go 1.18.8 to address CVE-2022-41716 (#7634)
      • [release/1.6] update to Go 1.18.8 to address CVE-2022-41716
    • [release/1.6] ctr export strictly match default platform (#7627)
      • ctr export strictly match default platform
    • [release/1.6] go.mod: Bump hcsshim to v0.9.5 (#7610)
      • [release/1.6] go.mod: Bump hcsshim to v0.9.5
    • [release/1.6] ctr import: strictly match platform (#7594)
      • ctr import: strictly match platform
    • [release/1.6] cherry-pick: Migrate away from GitHub actions set-output (#7582)
      • Migrate away from GitHub actions set-output

    ... (truncated)

    Commits
    • 770bd01 Merge pull request #7664 from dcantah/release-notes-1.6.10
    • e639ecd Prepare release notes for v1.6.10
    • 6c41694 Merge pull request #7646 from dcantah/cp-userxattr-1.6
    • 5af8d89 overlayutils: Add fastpath for userxattr check
    • f69fbac Merge pull request #7634 from thaJeztah/1.6_bump_go1.18.8
    • 303f608 [release/1.6] update to Go 1.18.8 to address CVE-2022-41716
    • 10841d6 Merge pull request #7627 from turan18/backport-ctr-export-strict
    • 3f9f950 ctr export strictly match default platform
    • a865cb5 Merge pull request #7610 from katiewasnothere/kabaldau/1.6-hcsshim-v0.9.5
    • df73aca [release/1.6] go.mod: Bump hcsshim to v0.9.5
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies go 
    opened by dependabot[bot] 0
  • Bump github.com/docker/cli from 20.10.20+incompatible to 20.10.21+incompatible

    Bump github.com/docker/cli from 20.10.20+incompatible to 20.10.21+incompatible

    Bumps github.com/docker/cli from 20.10.20+incompatible to 20.10.21+incompatible.

    Commits
    • baeda1f Merge pull request #3832 from crazy-max/20.10_backport_fix-docs-links
    • 3e3677e docs: fix links to BuildKit backend
    • e814bd0 Merge pull request #3824 from thaJeztah/20.10_backport_unexperimental_platform
    • 20e3951 Remove "experimental" gates around "--platform" in bash completion
    • 643e2e5 Merge pull request #3820 from thaJeztah/20.10_backport_runc_fix
    • 75d7ce9 fixed the plugin command docker-runc
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies go 
    opened by dependabot[bot] 0
  • Bump github.com/containerd/containerd from 1.6.8 to 1.6.9

    Bump github.com/containerd/containerd from 1.6.8 to 1.6.9

    Bumps github.com/containerd/containerd from 1.6.8 to 1.6.9.

    Release notes

    Sourced from github.com/containerd/containerd's releases.

    containerd 1.6.9

    Welcome to the v1.6.9 release of containerd!

    The ninth patch release for containerd 1.6 contains various fixes, reorders the pod setup workflow in the CRI plugin to prevent CNI resource leaks, and includes a new version of runc.

    Notable Updates

    • Update oci.WithDefaultUnixDevices(): remove tun/tap from the default devices (#7268)
    • Fix CRI: Do not append []string{""} to command to preserve Docker compatibility (#7298)
    • Enhance CRI: ContainerStatus to return container resources (#7410)
    • Fix OCI resolver to skip TLS verification for localhost (#7438
    • Fix createTarFile: make xattr EPERM non-fatal (#7447)
    • Fix CRI plugin to setup pod network after creating the sandbox container (#7456)
    • Fix OCI pusher to retry request on writer reset (#7461)
    • Fix archive to validate digests before use (#7490)
    • Migrate from k8s.gcr.io to registry.k8s.io (#7549)
    • Fix CRI: PodSandboxStatus should tolerate missing task (#7551)
    • Fix io.containerd.runc.v1: Stats() shouldn't assume s.container is non-nil (#7557)
    • Enhance CRI plugin to add logging volume metrics (#7571)
    • Add support for CAP_BPF and CAP_PERFMON (#7574)

    See the changelog for complete list of changes

    Please try out the release binaries and report any issues at https://github.com/containerd/containerd/issues.

    Contributors

    • Sebastiaan van Stijn
    • Akihiro Suda
    • Wei Fu
    • Samuel Karp
    • Kazuyoshi Kato
    • Maksym Pavlenko
    • Derek McGowan
    • Phil Estes
    • Qiutong Song
    • ruiwen-zhao
    • zounengren
    • Akhil Mohan
    • Andrey Klimentyev
    • Benjamin Elder
    • Henry Wang
    • Iceber Gu
    • Paco Xu
    • Sophie Liu
    • Ye Sijun
    • rongfu.leng

    ... (truncated)

    Commits
    • 1c90a44 Merge pull request #7573 from samuelkarp/release/1.6.9
    • 96929a5 Merge pull request #7574 from swagatbora90/backport-cap-bpf-perfmon
    • f1493f6 Prepare release notes for v1.6.9
    • 346412f adding support of CAP_BPF and CAP_PERFMON
    • 99578d1 Update mailmap
    • 8b9c35a Merge pull request #7571 from sophieliu15/release/1.6
    • a956d84 Add logging volume metrics to Containerd CRI plugin
    • 8658d0b Merge pull request #7562 from dcantah/cp-concurrent-closech
    • 29e2dea fix pusher concurrent close channel
    • 9a194f7 Merge pull request #7557 from kzys/backport/1.6/stats-nil
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies go 
    opened by dependabot[bot] 0
  • Bump github.com/docker/cli from 20.10.19+incompatible to 20.10.20+incompatible

    Bump github.com/docker/cli from 20.10.19+incompatible to 20.10.20+incompatible

    Bumps github.com/docker/cli from 20.10.19+incompatible to 20.10.20+incompatible.

    Commits
    • 9fdeb9c Merge pull request #4 from moby/20.10_update_vendor
    • a12c535 [20.10] vendor docker 03df974ae9e6c219862907efdd76ec2e77ec930b (v20.10.20)
    • d18a3e9 [20.10] vendor moby/buildkit v0.8.3-31-gc0149372
    • 932ca73 [20.10] vendor: github.com/docker/docker v20.10.19
    • 7d51e65 [20.10] vendor: github.com/moby/buildkit 3a1eeca59a9263613d996ead67d53a4b7d45...
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies go 
    opened by dependabot[bot] 0
  • Bump google.golang.org/grpc from 1.50.0 to 1.50.1

    Bump google.golang.org/grpc from 1.50.0 to 1.50.1

    Bumps google.golang.org/grpc from 1.50.0 to 1.50.1.

    Release notes

    Sourced from google.golang.org/grpc's releases.

    Release 1.50.1

    New Features

    • gcp/observability: support new configuration defined in public preview user guide
    Commits
    • 4c776ec Cherry-pick observability changes from master to v1.50.x and update version t...
    • 6576007 Change version to 1.50.1-dev (#5686)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies go 
    opened by dependabot[bot] 0
  • Bump github.com/docker/cli from 20.10.18+incompatible to 20.10.19+incompatible

    Bump github.com/docker/cli from 20.10.18+incompatible to 20.10.19+incompatible

    Bumps github.com/docker/cli from 20.10.18+incompatible to 20.10.19+incompatible.

    Commits
    • d85ef84 Merge pull request #3813 from thaJeztah/20.10_bump_engine
    • d1f9546 Merge pull request #3814 from thaJeztah/20.10_backport_zsh_completion
    • 1ea8d69 feat(docker): add context argument completion
    • e82aa85 [20.10] vendor: github.com/docker/docker v20.10.18
    • e9176b3 [20.10] vendor: github.com/containerd/continuity v0.3.0
    • a39f3fb Merge pull request #3807 from thaJeztah/20.10_backport_deprecate_override_ker...
    • 2fa0c62 Merge pull request #3809 from thaJeztah/20.10_backport_docs_update_confusing_...
    • bc6ff39 docs/reference: run.md update confusing example name
    • 3fa7a86 docs: update deprecation status for "overlay2.override_kernel_check"
    • 18e275c Merge pull request #3800 from thaJeztah/20.10_bump_go_1.18.7
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies go 
    opened by dependabot[bot] 0
  • Bump google.golang.org/grpc from 1.49.0 to 1.50.0

    Bump google.golang.org/grpc from 1.49.0 to 1.50.0

    Bumps google.golang.org/grpc from 1.49.0 to 1.50.0.

    Release notes

    Sourced from google.golang.org/grpc's releases.

    Release 1.50.0

    Behavior Changes

    • client: use proper "@" semantics for connecting to abstract unix sockets. (#5678)
      • This is technically a bug fix; the result is that the address was including a trailing NULL byte, which it should not have. This may break users creating the socket in Go by prefixing a NULL instead of an "@", though, so calling it out as a behavior change.

    New Features

    • metadata: add experimental ValueFromIncomingContext to more efficiently retrieve a single value (#5596)
    • stats: provide peer information in HandleConn context (#5589)
    • xds: add support for Outlier Detection, enabled by default (#5435, #5673)

    Bug Fixes

    • client: fix deadlock in transport caused by GOAWAY racing with stream creation (#5652)
      • This should only occur with an HTTP/2 server that does not follow best practices of an advisory GOAWAY (not a grpc-go server).
    • xds/xdsclient: fix a bug which was causing routes with cluster_specifier_plugin set to be NACKed when GRPC_EXPERIMENTAL_XDS_RLS_LB was off (#5670)
    • xds/xdsclient: NACK cluster resource if config_source_specifier in lrs_server is not self (#5613)
    • xds/ringhash: fix a bug which sometimes prevents the LB policy from retrying connection attempts (#5601)
    • xds/ringhash: do nothing when asked to exit IDLE instead of falling back on the default channel behavior of connecting to all addresses (#5614)
    • xds/rls: fix a bug which was causing the channel to be stuck in IDLE (#5656)
    • alts: fix a bug which was setting WaitForReady on handshaker service RPCs, thereby delaying fallback when required (#5620)
    • gcp/observability: fix End() to cleanup global state correctly (#5623)
    Commits
    • c1d7d7a Change version to 1.50.0 (#5685)
    • 1451c62 internal/transport: optimize grpc-message encoding/decoding (#5654)
    • be4b63b test: minor test cleanup (#5679)
    • d83070e Changed Outlier Detection Env Var to default true (#5673)
    • 54521b2 client: remove trailing null from unix abstract socket address (#5678)
    • 36e4810 orca: cleanup old code, and get grpc package to use new code (#5627)
    • e8866a8 build: harden GitHub Workflow permissions (#5660)
    • 8458251 xdsclient: ignore routes with cluster_specifier_plugin when GRPC_EXPERIMENTAL...
    • a238ceb xDS: Outlier Detection Env Var not hardcoded to false (#5664)
    • b1d7f56 transport: Fix deadlock in transport caused by GOAWAY race with new stream cr...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies go 
    opened by dependabot[bot] 0
  • Bump github.com/docker/cli from 20.10.17+incompatible to 20.10.18+incompatible

    Bump github.com/docker/cli from 20.10.17+incompatible to 20.10.18+incompatible

    Bumps github.com/docker/cli from 20.10.17+incompatible to 20.10.18+incompatible.

    Commits
    • b40c2f6 Merge pull request #3773 from thaJeztah/20.10_backport_bump_golang_1.18.6
    • 93eead4 Update to go 1.18.6 to address CVE-2022-27664, CVE-2022-32190
    • bd04f19 Merge pull request #3752 from thaJeztah/20.10_backport_completion
    • 2484f7e Merge pull request #3754 from thaJeztah/20.10_update_engine
    • 45075ea [20.10] vendor: github.com/docker/docker v20.10.17
    • c2dcaec make compose plugin detection in bash completion work on Mac OS
    • 613b936 Detect compose plugin
    • b30d250 Add completion for docker-compose plugin
    • fe0cdaf Merge pull request #3753 from thaJeztah/20.10_backport_fix_TestRemoveForce
    • 6b25bc3 fix race condition in TestRemoveForce
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies go 
    opened by dependabot[bot] 0
  • Bump github.com/urfave/cli from 1.22.9 to 1.22.10

    Bump github.com/urfave/cli from 1.22.9 to 1.22.10

    Bumps github.com/urfave/cli from 1.22.9 to 1.22.10.

    Release notes

    Sourced from github.com/urfave/cli's releases.

    v1.22.10

    What's Changed

    Full Changelog: https://github.com/urfave/cli/compare/v1.22.9...v1.22.10

    Commits
    • c24c9f3 Fix:(issue_1094) Dont execute Before/After during shell completions (#1459)
    • 1eac782 Merge pull request #1428 from urfave/ignore-v2-ignored
    • 5083312 Ignore dirs that are ignored in v2
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies go 
    opened by dependabot[bot] 0
  • Bump google.golang.org/grpc from 1.50.1 to 1.51.0

    Bump google.golang.org/grpc from 1.50.1 to 1.51.0

    Bumps google.golang.org/grpc from 1.50.1 to 1.51.0.

    Release notes

    Sourced from google.golang.org/grpc's releases.

    Release 1.51.0

    Behavior Changes

    • xds: NACK EDS resources with duplicate addresses in accordance with a recent spec change (#5715)
    • grpc: restrict status codes that can be generated by the control plane (gRFC A54) (#5653)

    New Features

    • client: set grpc-accept-encoding header with all registered compressors (#5541)
    • xds/weightedtarget: return a more meaningful error when all child policies are in TRANSIENT_FAILURE (#5711)
    • gcp/observability: add "started rpcs" metric (#5768)
    • xds: de-experimentalize the google-c2p-resolver (#5707)
    • balancer: add experimental Producer types and methods (#5669)
    • orca: provide a way for LB policies to receive OOB load reports (#5669)

    Bug Fixes

    • go.mod: upgrade x/text dependency to address CVE 2022-32149 (#5769)
    • client: fix race that could lead to an incorrect connection state if it was closed immediately after the server's HTTP/2 preface was received (#5714)
    • xds: ensure sum of the weights of all EDS localities at the same priority level does not exceed uint32 max (#5703)
    • client: fix binary logging bug which logs a server header on a trailers-only response (#5763)
    • balancer/priority: fix a bug where unreleased references to removed child policies (and associated state) was causing a memory leak (#5682)
    • xds/google-c2p: validate URI schema for no authorities (#5756)
    Commits
    • eeb9afa Change version to 1.51.0 (#5782)
    • 72812fe gcp/observability: filter logging from cloud ops endpoints calls (#5765)
    • 0ae33e6 xdsclient: remove unused test code (#5772)
    • 824f449 go.mod: upgrade x/text to v0.4 to address CVE (#5769)
    • 7f23df0 xdsclient: switch xdsclient watch deadlock test to e2e style (#5697)
    • 32f969e o11y: Added started rpc metric in o11y plugin (#5768)
    • b597a8e xdsclient: improve authority watchers test (#5700)
    • e41e894 orca: create ORCA producer for LB policies to use to receive OOB load reports...
    • 36d14db Fix binary logging bug which logs a server header on a trailers only response...
    • fcb8bdf xds/google-c2p: validate url for no authorities (#5756)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies go 
    opened by dependabot[bot] 0
  • First line on Dockerfile's Syntax seems to terminate debugging session instantly

    First line on Dockerfile's Syntax seems to terminate debugging session instantly

    Thank you for this cool OpenSource project! :bowtie:

    I have an issue, when debugging my Dockerfiles, which start using Docker BuildKit's Dockerfile-Syntax declarations like this one. Screenshot_20221110_080438

    When I remove this first line "# syntax = docker/dockerfile:1.4.3", the debugger IS working perfectly. Having this first line included results in weird output of it:

    Screenshot_20221110_080816

    The debugger seems to not understand this line and terminates directly — even when this image is present locally in my repository.

    opened by danielschulz 4
  • Fix spelling in main README

    Fix spelling in main README

    Just dropped in to find out what the project is about -- and the first thing that caught my eye were these spelling errors... :)

    Signed-off-by: Les Matheson [email protected]

    opened by Stabledog 4
Releases(v0.4.1)
Owner
Kohei Tokunaga
Kohei Tokunaga
concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit

BuildKit BuildKit is a toolkit for converting source code to build artifacts in an efficient, expressive and repeatable manner. Key features: Automati

Moby 6k Nov 19, 2022
Get the tags of the images used in a Dockerfile

dockerfile-image-tags List or query images and tags used in a Dockerfile. Usage List all images and tags Pass path to Dockerfile: dockerfile-image-tag

Shiv Jha-Mathur 0 Nov 8, 2021
Deploy https certificates non-interactively to CDN services

certdeploy Deploy https certificates non-interactively to CDN services. Environment Variables CERT_PATH - Certificate file path, should contain certif

三三 1 Nov 12, 2021
Conjur Kubernetes All-in-One Dockerfile

conjur-authn-k8s-aio Conjur Kubernetes All-in-One Dockerfile Supported Authenticators Usage Build Secretless Broker Build Conjur Authn-K8s Client Buil

Joe Garcia 1 Sep 14, 2022
Gh-s - Search github repositories interactively

search github repositories interactively Installation • Usage • Feedback Search

Gennaro Tedesco 240 Nov 22, 2022
Gh-i - Search your github issues interactively

search your github issues interactively Installation • Usage • Feedback Search G

Gennaro Tedesco 39 Nov 3, 2022
quick debug program running in the k8s pod

quick-debug English | 中文 What Problem To Solve As the k8s becomes more and more popular, most projects are deployed in k8s, and so is the development

Alan Wang 13 Apr 1, 2022
This script search print debug from PHP code.

go-php-print-debug This script search print debug from PHP code. Checking "print", "print_r", "var_dump", "var_export", "echo" as print debug. Exclude

kota oue 0 Jan 15, 2022
Nycmesh-tool - nycmesh-tool CLI

nycmesh-tool nycmesh-tool CLI Features At the moment, the tool is pretty sparse. It provides the top level nycmesh-tool command, with subcommands for:

Gabe Conradi 1 Jun 17, 2022
Terraform-equinix-migration-tool - Tool to migrate code from Equinix Metal terraform provider to Equinix terraform provider

Equinix Terraform Provider Migration Tool This tool targets a terraform working

Equinix 1 Feb 15, 2022
Blast is a simple tool for API load testing and batch jobs

Blast Blast makes API requests at a fixed rate. The number of concurrent workers is configurable. The rate may be changed interactively during executi

Dave Brophy 209 Nov 10, 2022
Fast cross-platform HTTP benchmarking tool written in Go

bombardier bombardier is a HTTP(S) benchmarking tool. It is written in Go programming language and uses excellent fasthttp instead of Go's default htt

Максим Федосеев 3.9k Nov 22, 2022
:rocket: Modern cross-platform HTTP load-testing tool written in Go

English | 中文 Cassowary is a modern HTTP/S, intuitive & cross-platform load testing tool built in Go for developers, testers and sysadmins. Cassowary d

Roger Welin 634 Nov 19, 2022
DepCharge is a tool designed to help orchestrate the execution of commands across many directories at once.

DepCharge DepCharge is a tool that helps orchestrate the execution of commands across the many dependencies and directories in larger projects. It als

Andrew LeTourneau 23 Sep 27, 2022
Super simple deployment tool

Dropship Dropship is a simple tool for installing and updating artifacts from a CDN. Features Automatically performs md5sum checks of artifact that is

Christopher McKenzie 62 Oct 4, 2022
A dead simple, no frills Go cross compile tool

Gox - Simple Go Cross Compilation Gox is a simple, no-frills tool for Go cross compilation that behaves a lot like standard go build. Gox will paralle

Mitchell Hashimoto 4.4k Nov 19, 2022
a build tool for Go, with a focus on cross-compiling, packaging and deployment

goxc NOTE: goxc has long been in maintenance mode. Ever since Go1.5 supported simple cross-compilation, this tool lost much of its value. There are st

Am Laher 1.7k Nov 11, 2022
Ostent is a server tool to collect, display and report system metrics.

Ostent Ostent collects metrics to display and report to InfluxDB, Graphite, Librato. The interactive display UI (demo): System metrics collected and r

Ostrost 175 Sep 27, 2022
Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.

Packer Website: https://www.packer.io IRC: #packer-tool on Freenode Mailing list: Google Groups Packer is a tool for building identical machine images

HashiCorp 14.1k Nov 24, 2022