Buildg: A tool to interactively debug Dockerfile

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/busybox@sha256:d2b53584f580310186df7a2055ce3ff83cc0df6caacf1e3489bff8cf5d0af5d8
#4 resolve docker.io/library/busybox@sha256: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
Owner
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

  • 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]
    
  • Bump github.com/docker/cli from 20.10.21+incompatible to 20.10.22+incompatible

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

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

    Commits
    • 3a2c30b Merge pull request #3919 from thaJeztah/20.10_update_engine
    • 47649fb vendor: github.com/docker/docker v20.10.21
    • 3b562e9 vendor: github.com/moby/buildkit v0.8.4-0.20221020190723-eeb7b65ab7d6
    • e7cdabe Merge pull request #3918 from thaJeztah/20.10_docs_backports
    • 5106d8e Merge pull request #3917 from thaJeztah/20.10_backport_update_gotestsum
    • ce10682 Remove deprecated note
    • 058f7df docs: docker inspect --size
    • 226a2fd docs: docker inspect: reformat with prettier
    • 42eca75 docs: use correct separator in --security-opt
    • 0c8ce43 docs: fix misleading example of setting an env variable for a single command
    • 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)
  • Bump github.com/google/go-dap from 0.6.0 to 0.7.0

    Bump github.com/google/go-dap from 0.6.0 to 0.7.0

    Bumps github.com/google/go-dap from 0.6.0 to 0.7.0.

    Release notes

    Sourced from github.com/google/go-dap's releases.

    v0.7.0

    What's Changed

    Full Changelog: https://github.com/google/go-dap/compare/v0.6.0...v0.7.0

    Commits

    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)
  • Bump github.com/containerd/containerd from 1.6.14 to 1.6.15

    Bump github.com/containerd/containerd from 1.6.14 to 1.6.15

    Bumps github.com/containerd/containerd from 1.6.14 to 1.6.15.

    Release notes

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

    containerd 1.6.15

    Welcome to the v1.6.15 release of containerd!

    The fifteenth patch release for containerd 1.6 fixes an issue with CNI in the CRI plugin

    Notable Updates

    • Fix no CNI info for pod sandbox on restart in CRI plugin (#7848)

    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

    • Derek McGowan
    • Akihiro Suda
    • Danny Canter
    • Kevin Parsons
    • Samuel Karp
    • Wei Fu

    Changes

    • [release/1.6] Prepare release notes for v1.6.15 (#7924)
      • 883899eae Prepare release notes for v1.6.15
    • [release/1.6] CI: Pass GITHUB_TOKEN to containerd/project-checks (#7919)
      • b57367020 CI: Pass GITHUB_TOKEN to containerd/project-checks
    • [release/1.6] integration/images: switch away from Docker Hub to avoid rate limit (#7900)
      • 0f4062c9b integration/images: switch away from Docker Hub to avoid rate limit
    • [release/1.6] CRI: Fix no CNI info for pod sandbox on restart (#7848)
      • f16447e2d CRI: Fix no CNI info for pod sandbox on restart

    Dependency Changes

    This release has no dependency changes

    Previous release can be found at v1.6.14

    Commits
    • 5b842e5 Merge pull request #7924 from dmcgowan/prepare-1.6.15
    • 883899e Prepare release notes for v1.6.15
    • ba6af25 Merge pull request #7919 from dmcgowan/backport-1.6-gh-rate-limit
    • b573670 CI: Pass GITHUB_TOKEN to containerd/project-checks
    • f28bb76 Merge pull request #7900 from dmcgowan/backport-1.6-integration-tests-ghcr
    • 0f4062c integration/images: switch away from Docker Hub to avoid rate limit
    • 686c3f3 Merge pull request #7848 from dcantah/fix-noip-1.6
    • f16447e CRI: Fix no CNI info for pod sandbox on restart
    • 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)
  • Bump github.com/containerd/containerd from 1.6.13 to 1.6.14

    Bump github.com/containerd/containerd from 1.6.13 to 1.6.14

    Bumps github.com/containerd/containerd from 1.6.13 to 1.6.14.

    Release notes

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

    containerd 1.6.14

    Welcome to the v1.6.14 release of containerd!

    The fourteenth patch release for containerd 1.6 fixes a regression in the CRI plugin related to swap

    Notable Updates

    • Fix memory.memsw.limit_in_bytes: no such file or directory error in CRI plugin (#7838)

    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

    • Phil Estes
    • Derek McGowan
    • Akihiro Suda
    • Cameron Sparr
    • Akhil Mohan
    • Kazuyoshi Kato
    • Sebastiaan van Stijn
    • Serge Logvinov
    • Wang Bing
    • Wei Fu
    • cathaysia
    • shi yixue
    • wusong

    Changes

    • Prepare release notes for v1.6.14 (#7841)
      • 1347d7c87 Prepare release notes for v1.6.14
    • [release/1.6] cri: fix memory.memsw.limit_in_bytes: no such file or directory (#7838)
      • 53c733e0b cri: fix memory.memsw.limit_in_bytes: no such file or directory
    • Revert "[release/1.6] support fetching containerd from non public GCS buckets" (#7830)
      • e8b22c100 Revert "[release/1.6] support fetching containerd from non public GCS buckets"

    Changes from containerd/cgroups

    • ParseCgroupFile: fix wrong comment about unified hierarchy ; add ParseCgroupFileUnified to get the unified path (#232)
      • dd81920 add ParseCgroupFileUnified to get the unified path
      • dae6735 ParseCgroupFile: fix wrong comment about unified hierarchy

    ... (truncated)

    Commits
    • 9ba4b25 Merge pull request #7841 from dmcgowan/prepare-1.6.14
    • 5227354 Merge pull request #7838 from dmcgowan/1.6-fix-memory-swap-regression
    • 53c733e cri: fix memory.memsw.limit_in_bytes: no such file or directory
    • 1347d7c Prepare release notes for v1.6.14
    • 07b839d Merge pull request #7830 from akhilerm/revert-7823-cherry-pick-7771-1.6
    • e8b22c1 Revert "[release/1.6] support fetching containerd from non public GCS buckets"
    • 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)
  • Bump github.com/containerd/containerd from 1.6.12 to 1.6.13

    Bump github.com/containerd/containerd from 1.6.12 to 1.6.13

    Bumps github.com/containerd/containerd from 1.6.12 to 1.6.13.

    Release notes

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

    containerd 1.6.13

    Welcome to the v1.6.13 release of containerd!

    The thirteenth patch release for containerd 1.6 contains various fixes and updates.

    Notable Updates

    • Update overlay snapshotter to check for tmpfs when evaluating usage of userxattr (#7788)
    • Update hcsschim to v0.9.6 to fix resource leak on exec (#7808)
    • Make swapping disabled with memory limit in CRI plugin (#7815)
    • Allow clients to remove created tasks with PID 0 (#7816)
    • Fix concurrent map iteration and map write in CRI port forwarding (#7819)
    • Check for nil HugepageLimits to avoid panic in CRI plugin (#7820)

    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

    • Derek McGowan
    • Akhil Mohan
    • Phil Estes
    • Kazuyoshi Kato
    • Maksym Pavlenko
    • Akihiro Suda
    • Gavin Inglis
    • Kirtana Ashok
    • Mike Brown
    • Qasim Sarfraz
    • Shinichi Morimoto
    • chaunceyjiang
    • mathis-m

    Changes

    • [release/1.6] Prepare release notes for v1.6.13 (#7821)
      • Prepare release notes for v1.6.13
    • [release/1.6] support fetching containerd from non public GCS buckets (#7823)
      • disable tracing while handling token
      • support fetching containerd from non public GCS buckets
    • [release/1.6] nil check to avoid panic on upgrade (#7820)
      • nil check to avoid panic on upgrade
    • [release/1.6] concurrent map iteration and map write (#7819)
      • fatal error: concurrent map iteration and map write
    • [release/1.6] allow client to remove created tasks with PID 0 (#7816)
      • allow client to remove created tasks with PID 0

    ... (truncated)

    Commits
    • 78f5177 Merge pull request #7821 from dmcgowan/prepare-1.6.13
    • b56901d Merge pull request #7823 from akhilerm/cherry-pick-7771-1.6
    • bd7db85 disable tracing while handling token
    • 1a5e26e support fetching containerd from non public GCS buckets
    • e260e8a Prepare release notes for v1.6.13
    • 34f7cec Merge pull request #7820 from dmcgowan/1.6-nil-check-hugepagelimits
    • 7d02c97 Merge pull request #7819 from dmcgowan/1.6-portfoward-concurrent-read-write
    • c8889df nil check to avoid panic on upgrade
    • f7e578e Merge pull request #7816 from ginglis13/backport-7787
    • 0e8f5e2 fatal error: concurrent map iteration and map write
    • 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)
  • Bump github.com/containerd/containerd from 1.6.11 to 1.6.12

    Bump github.com/containerd/containerd from 1.6.11 to 1.6.12

    Bumps github.com/containerd/containerd from 1.6.11 to 1.6.12.

    Release notes

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

    containerd 1.6.12

    Welcome to the v1.6.12 release of containerd!

    The twelfth patch release for containerd 1.6 contains a fix for CVE-2022-23471.

    Notable Updates

    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

    • Derek McGowan
    • Danny Canter
    • Phil Estes
    • Sebastiaan van Stijn

    Changes

    • Github Security Advisory GHSA-2qjp-425j-52j9
      • Prepare release notes for v1.6.12
      • CRI stream server: Fix goroutine leak in Exec
    • [release/1.6] update to go1.18.9 (#7766)
      • [release/1.6] update to go1.18.9

    Dependency Changes

    This release has no dependency changes

    Previous release can be found at v1.6.11

    Commits
    • a05d175 Merge pull request from GHSA-2qjp-425j-52j9
    • 1899ebc Prepare release notes for v1.6.12
    • ec5acd4 CRI stream server: Fix goroutine leak in Exec
    • 52a4492 Merge pull request #7766 from thaJeztah/1.6_update_go_1.18.9
    • 9743dba [release/1.6] update to go1.18.9
    • 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)
  • Bump github.com/containerd/containerd from 1.6.10 to 1.6.11

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

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

    Release notes

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

    containerd 1.6.11

    Welcome to the v1.6.11 release of containerd!

    The eleventh patch release for containerd 1.6 contains a various fixes and updates.

    Notable Updates

    • Add pod UID annotation in CRI plugin (#7735)
    • Fix nil pointer deference for Windows containers in CRI plugin (#7737)
    • Fix lease labels unexpectedly overwriting expiration (#7745)
    • Fix for simultaneous diff creation using the same parent snapshot (#7756)

    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

    • Derek McGowan
    • Wei Fu
    • Austin Vazquez
    • Kirtana Ashok
    • Maksym Pavlenko
    • Phil Estes
    • Qasim Sarfraz
    • Sebastiaan van Stijn
    • cosmoer

    Changes

    • Prepare release notes for v1.6.11 (#7760)
      • Prepare release notes for v1.6.11
    • [release/1.6] fix: support simultaneous create diff for same parent snapshot (#7756)
      • fix: support simultaneous create diff for same parent snapshot
    • [release/1.6] cherry-pick: Fix order of operations when setting lease labels (#7745)
      • Fix order of operations when setting lease labels
    • [release/1.6] Added nullptr checks to pkg/cri/server and sbserver (#7737)
      • Added nullptr checks to pkg/cri/server and sbserver
    • [release/1.6] cri: add pod uid annotation (#7735)
      • cri: add pod uid annotation
    • [release/1.6] go.mod: use golang_protobuf_extensions v1.0.4 to prevent incompatible versions (#7723)
      • [release/1.6] go.mod: use golang_protobuf_extensions v1.0.4

    Dependency Changes

    This release has no dependency changes

    ... (truncated)

    Commits
    • d986545 Merge pull request #7760 from dmcgowan/prepare-1.6.11
    • 3d24d97 Prepare release notes for v1.6.11
    • 864cce9 Merge pull request #7756 from vvoland/rootfs-diff-multiple
    • bb96b21 fix: support simultaneous create diff for same parent snapshot
    • 92ee926 Merge pull request #7745 from austinvazquez/cherry-pick-c4dee237f57a7f7895aaa...
    • 15b5412 Fix order of operations when setting lease labels
    • 3efc787 Merge pull request #7737 from kiashok/PortNullPtrCheck
    • 9fdf713 Added nullptr checks to pkg/cri/server and sbserver
    • 3b580ad Merge pull request #7735 from inspektor-gadget/stable-add-sandbox-uid-annotation
    • 56593cc cri: add pod uid annotation
    • 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)
  • 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)
  • 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)
  • 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.

  • 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]

Related tags
concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit
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

Dec 31, 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

Nov 8, 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

Sep 14, 2022
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

Nov 27, 2022
Gh-s - Search github repositories interactively
Gh-s - Search github repositories interactively

search github repositories interactively Installation • Usage • Feedback Search

Dec 7, 2022
Gh-i - Search your github issues interactively
Gh-i - Search your github issues interactively

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

Dec 29, 2022
quick debug program running in the k8s pod
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

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

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:

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

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

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

Jan 2, 2023
:rocket: Modern cross-platform HTTP load-testing tool written in Go
: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

Dec 29, 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

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

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

Jan 1, 2023
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

Dec 9, 2022
Ostent is a server tool to collect, display and report system metrics.
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

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

Jan 8, 2023