Merge pull request #22797 from TomSweeneyRedHat/dev/tsweeney/buildah-1.36.0

Bump Buildah to v1.36.0
This commit is contained in:
openshift-merge-bot[bot]
2024-05-25 16:45:06 +00:00
committed by GitHub
16 changed files with 195 additions and 39 deletions

10
go.mod
View File

@ -13,8 +13,8 @@ require (
github.com/checkpoint-restore/checkpointctl v1.1.0 github.com/checkpoint-restore/checkpointctl v1.1.0
github.com/checkpoint-restore/go-criu/v7 v7.1.0 github.com/checkpoint-restore/go-criu/v7 v7.1.0
github.com/containernetworking/plugins v1.5.0 github.com/containernetworking/plugins v1.5.0
github.com/containers/buildah v1.35.1-0.20240510150258-77f239ae12e5 github.com/containers/buildah v1.36.0
github.com/containers/common v0.58.1-0.20240523020001-79d954c77663 github.com/containers/common v0.59.0
github.com/containers/conmon v2.0.20+incompatible github.com/containers/conmon v2.0.20+incompatible
github.com/containers/gvisor-tap-vsock v0.7.4-0.20240515153903-01a1a0cd3f70 github.com/containers/gvisor-tap-vsock v0.7.4-0.20240515153903-01a1a0cd3f70
github.com/containers/image/v5 v5.31.0 github.com/containers/image/v5 v5.31.0
@ -60,7 +60,7 @@ require (
github.com/opencontainers/runtime-spec v1.2.0 github.com/opencontainers/runtime-spec v1.2.0
github.com/opencontainers/runtime-tools v0.9.1-0.20230914150019-408c51e934dc github.com/opencontainers/runtime-tools v0.9.1-0.20230914150019-408c51e934dc
github.com/opencontainers/selinux v1.11.0 github.com/opencontainers/selinux v1.11.0
github.com/openshift/imagebuilder v1.2.7 github.com/openshift/imagebuilder v1.2.9
github.com/rootless-containers/rootlesskit/v2 v2.1.0 github.com/rootless-containers/rootlesskit/v2 v2.1.0
github.com/shirou/gopsutil/v3 v3.24.4 github.com/shirou/gopsutil/v3 v3.24.4
github.com/sirupsen/logrus v1.9.3 github.com/sirupsen/logrus v1.9.3
@ -105,7 +105,7 @@ require (
github.com/containerd/typeurl/v2 v2.1.1 // indirect github.com/containerd/typeurl/v2 v2.1.1 // indirect
github.com/containernetworking/cni v1.1.2 // indirect github.com/containernetworking/cni v1.1.2 // indirect
github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 // indirect github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 // indirect
github.com/containers/luksy v0.0.0-20240408185936-afd8e7619947 // indirect github.com/containers/luksy v0.0.0-20240506205542-84b50f50f3ee // indirect
github.com/coreos/go-oidc/v3 v3.10.0 // indirect github.com/coreos/go-oidc/v3 v3.10.0 // indirect
github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f // indirect github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f // indirect
github.com/cyberphone/json-canonicalization v0.0.0-20231217050601-ba74d44ecf5f // indirect github.com/cyberphone/json-canonicalization v0.0.0-20231217050601-ba74d44ecf5f // indirect
@ -116,7 +116,7 @@ require (
github.com/docker/docker-credential-helpers v0.8.1 // indirect github.com/docker/docker-credential-helpers v0.8.1 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/fsouza/go-dockerclient v1.10.1 // indirect github.com/fsouza/go-dockerclient v1.11.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect
github.com/gin-contrib/sse v0.1.0 // indirect github.com/gin-contrib/sse v0.1.0 // indirect
github.com/gin-gonic/gin v1.9.1 // indirect github.com/gin-gonic/gin v1.9.1 // indirect

20
go.sum
View File

@ -77,10 +77,10 @@ github.com/containernetworking/cni v1.1.2 h1:wtRGZVv7olUHMOqouPpn3cXJWpJgM6+EUl3
github.com/containernetworking/cni v1.1.2/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= github.com/containernetworking/cni v1.1.2/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw=
github.com/containernetworking/plugins v1.5.0 h1:P09DMlfvvsLSskDoftnuwXY7lwa7IAhTGznZxA5E8fk= github.com/containernetworking/plugins v1.5.0 h1:P09DMlfvvsLSskDoftnuwXY7lwa7IAhTGznZxA5E8fk=
github.com/containernetworking/plugins v1.5.0/go.mod h1:bcXMvG9gWGc6jVXeodmMzuXmXqpqMguZm6Zu/oIr7AA= github.com/containernetworking/plugins v1.5.0/go.mod h1:bcXMvG9gWGc6jVXeodmMzuXmXqpqMguZm6Zu/oIr7AA=
github.com/containers/buildah v1.35.1-0.20240510150258-77f239ae12e5 h1:xtKtw/g2iDkirqSw6Dvvc2ZMPxBYhyN9xPdH81a7hO4= github.com/containers/buildah v1.36.0 h1:e369nE9bx0yJtPVRDMsbr0OzkW59XCYAl+5poGhFjcs=
github.com/containers/buildah v1.35.1-0.20240510150258-77f239ae12e5/go.mod h1:ezOOMchy0Dcu/jKNNsTJbtxvOrhdogVkbG+UxkG77EY= github.com/containers/buildah v1.36.0/go.mod h1:qlEF4RuCnzEUTQhAnCyGr5WoYNZaU0k2mPcZscUR//c=
github.com/containers/common v0.58.1-0.20240523020001-79d954c77663 h1:uuVZV1SZO4Mdtiyngf91HytchzlXPW90F8weyXk71hY= github.com/containers/common v0.59.0 h1:fy9Jz0B7Qs1C030bm73YJtVddaiFSZD3558EV1tgN2g=
github.com/containers/common v0.58.1-0.20240523020001-79d954c77663/go.mod h1:53VicJCZ2AD0O+Br7VVoyrS7viXF4YmwlTIocWUT8XE= github.com/containers/common v0.59.0/go.mod h1:53VicJCZ2AD0O+Br7VVoyrS7viXF4YmwlTIocWUT8XE=
github.com/containers/conmon v2.0.20+incompatible h1:YbCVSFSCqFjjVwHTPINGdMX1F6JXHGTUje2ZYobNrkg= github.com/containers/conmon v2.0.20+incompatible h1:YbCVSFSCqFjjVwHTPINGdMX1F6JXHGTUje2ZYobNrkg=
github.com/containers/conmon v2.0.20+incompatible/go.mod h1:hgwZ2mtuDrppv78a/cOBNiCm6O0UMWGx1mu7P00nu5I= github.com/containers/conmon v2.0.20+incompatible/go.mod h1:hgwZ2mtuDrppv78a/cOBNiCm6O0UMWGx1mu7P00nu5I=
github.com/containers/gvisor-tap-vsock v0.7.4-0.20240515153903-01a1a0cd3f70 h1:aACcXSIgcuPq5QdNZZ8B53BCdhqYvw33/8QmZWJATvg= github.com/containers/gvisor-tap-vsock v0.7.4-0.20240515153903-01a1a0cd3f70 h1:aACcXSIgcuPq5QdNZZ8B53BCdhqYvw33/8QmZWJATvg=
@ -91,8 +91,8 @@ github.com/containers/libhvee v0.7.1 h1:dWGF5GLq9DZvXo3P8aDp3cNieL5eCaSell4UmeA/
github.com/containers/libhvee v0.7.1/go.mod h1:fRKB3AyIqHMvq6xaeYhTpckM2cdoq0oecolyoiuLP7M= github.com/containers/libhvee v0.7.1/go.mod h1:fRKB3AyIqHMvq6xaeYhTpckM2cdoq0oecolyoiuLP7M=
github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 h1:Qzk5C6cYglewc+UyGf6lc8Mj2UaPTHy/iF2De0/77CA= github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 h1:Qzk5C6cYglewc+UyGf6lc8Mj2UaPTHy/iF2De0/77CA=
github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01/go.mod h1:9rfv8iPl1ZP7aqh9YA68wnZv2NUDbXdcdPHVz0pFbPY= github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01/go.mod h1:9rfv8iPl1ZP7aqh9YA68wnZv2NUDbXdcdPHVz0pFbPY=
github.com/containers/luksy v0.0.0-20240408185936-afd8e7619947 h1:LDm12XWmz7PQ9K6iy70m+tGxNlr39KcxFVc8CSnMT+I= github.com/containers/luksy v0.0.0-20240506205542-84b50f50f3ee h1:QU6XNrPcxyGejcEYJfpIH7LwB+yXVbb0tWxf7mZxfN4=
github.com/containers/luksy v0.0.0-20240408185936-afd8e7619947/go.mod h1:DeMi9C2WxgZtJLpBGd175oGZwX/pOmZ6xJVhA5XAG/g= github.com/containers/luksy v0.0.0-20240506205542-84b50f50f3ee/go.mod h1:cEhy3LVQzQqf/BHx0WS6CXmZp+RZZaUKmhQaFZ4NiiU=
github.com/containers/ocicrypt v1.1.10 h1:r7UR6o8+lyhkEywetubUUgcKFjOWOaWz8cEBrCPX0ic= github.com/containers/ocicrypt v1.1.10 h1:r7UR6o8+lyhkEywetubUUgcKFjOWOaWz8cEBrCPX0ic=
github.com/containers/ocicrypt v1.1.10/go.mod h1:YfzSSr06PTHQwSTUKqDSjish9BeW1E4HUmreluQcMd8= github.com/containers/ocicrypt v1.1.10/go.mod h1:YfzSSr06PTHQwSTUKqDSjish9BeW1E4HUmreluQcMd8=
github.com/containers/psgo v1.9.0 h1:eJ74jzSaCHnWt26OlKZROSyUyRcGDf+gYBdXnxrMW4g= github.com/containers/psgo v1.9.0 h1:eJ74jzSaCHnWt26OlKZROSyUyRcGDf+gYBdXnxrMW4g=
@ -163,8 +163,8 @@ github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
github.com/fsouza/go-dockerclient v1.10.1 h1:bSU5Wu2ARdub+iv9VtoDsN8yBUI0vgflmshbeQLKhvc= github.com/fsouza/go-dockerclient v1.11.0 h1:4ZAk6W7rPAtPXm7198EFqA5S68rwnNQORxlOA5OurCA=
github.com/fsouza/go-dockerclient v1.10.1/go.mod h1:dyzGriw6v3pK4O4O1u/X+vXxDDsrnLLkCqYkcLsDq2k= github.com/fsouza/go-dockerclient v1.11.0/go.mod h1:0I3TQCRseuPTzqlY4Y3ajfsg2VAdMQoazrkxJTiJg8s=
github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0=
github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk=
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
@ -416,8 +416,8 @@ github.com/opencontainers/runtime-tools v0.9.1-0.20230914150019-408c51e934dc h1:
github.com/opencontainers/runtime-tools v0.9.1-0.20230914150019-408c51e934dc/go.mod h1:8tx1helyqhUC65McMm3x7HmOex8lO2/v9zPuxmKHurs= github.com/opencontainers/runtime-tools v0.9.1-0.20230914150019-408c51e934dc/go.mod h1:8tx1helyqhUC65McMm3x7HmOex8lO2/v9zPuxmKHurs=
github.com/opencontainers/selinux v1.11.0 h1:+5Zbo97w3Lbmb3PeqQtpmTkMwsW5nRI3YaLpt7tQ7oU= github.com/opencontainers/selinux v1.11.0 h1:+5Zbo97w3Lbmb3PeqQtpmTkMwsW5nRI3YaLpt7tQ7oU=
github.com/opencontainers/selinux v1.11.0/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec= github.com/opencontainers/selinux v1.11.0/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec=
github.com/openshift/imagebuilder v1.2.7 h1:IJUrZ59iW8ekX8XONlyUyJTQHlkkXtKFvb6bpKWXwz0= github.com/openshift/imagebuilder v1.2.9 h1:830/kg5FWtpLsQ6JcCQ23qOeb/KfzMK66pai544rAUI=
github.com/openshift/imagebuilder v1.2.7/go.mod h1:Q7R8nLg2rziREGN1iZuXBcVv7LI8m5GLEOFQMcqtmsg= github.com/openshift/imagebuilder v1.2.9/go.mod h1:KkkXOyRjJlZEXWQtHNBNzVHqh4vf/0xX5cDIQ2gr+5I=
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
github.com/ostreedev/ostree-go v0.0.0-20210805093236-719684c64e4f h1:/UDgs8FGMqwnHagNDPGOlts35QkhAZ8by3DR7nMih7M= github.com/ostreedev/ostree-go v0.0.0-20210805093236-719684c64e4f h1:/UDgs8FGMqwnHagNDPGOlts35QkhAZ8by3DR7nMih7M=

View File

@ -2,6 +2,65 @@
# Changelog # Changelog
## v1.36.0 (2024-05-23)
build: be more selective about specifying the default OS
Bump to c/common v0.59.0
Fix buildah prune --help showing the same example twice
fix(deps): update module github.com/onsi/ginkgo/v2 to v2.18.0
fix(deps): update module github.com/containers/image/v5 to v5.31.0
bud tests: fix breakage when vendoring into podman
Integration tests: fake up a replacement for nixery.dev/shell
copierWithSubprocess(): try to capture stderr on io.ErrClosedPipe
Don't expand RUN heredocs ourselves, let the shell do it
Don't leak temp files on failures
Add release note template to split dependency chores
fix CentOS/RHEL build - no BATS there
fix(deps): update module github.com/containers/luksy to v0.0.0-20240506205542-84b50f50f3ee
Address CVE-2024-3727
chore(deps): update module github.com/opencontainers/runtime-spec to v1.2.0
Builder.cdiSetupDevicesInSpecdefConfig(): use configured CDI dirs
Setting --arch should set the TARGETARCH build arg
fix(deps): update module golang.org/x/exp to v0.0.0-20240416160154-fe59bbe5cc7f
[CI:DOCS] Add link to Buildah image page to README.md
Don't set GOTOOLCHAIN=local
fix(deps): update module github.com/cyphar/filepath-securejoin to v0.2.5
Makefile: set GOTOOLCHAIN=local
Integration tests: switch some base images
containerImageRef.NewImageSource: merge the tar filters
fix(deps): update module github.com/onsi/ginkgo/v2 to v2.17.2
fix(deps): update module github.com/containers/luksy to v0.0.0-20240408185936-afd8e7619947
Disable packit builds for centos-stream+epel-next-8
Makefile: add missing files to $(SOURCES)
CI VMs: bump to new versions with tmpfs /tmp
chore(deps): update module golang.org/x/net to v0.23.0 [security]
integration test: handle new labels in "bud and test --unsetlabel"
Switch packit configuration to use epel-9-$arch ...
Give unit tests a bit more time
Integration tests: remove a couple of duplicated tests
Integration tests: whitespace tweaks
Integration tests: don't remove images at start or end of test
Integration tests: use cached images more
Integration tests _prefetch: use registry configs
internal: use fileutils.(Le|E)xists
pkg/parse: use fileutils.(Le|E)xists
buildah: use fileutils.(Le|E)xists
chroot: use fileutils.(Le|E)xists
vendor: update containers/(common|storage)
Fix issue/pr lock workflow
[CI:DOCS] Add golang 1.21 update warning
heredoc: honor inline COPY irrespective of ignorefiles
Update install.md
source-push: add support for --digestfile
Fix caching when mounting a cached stage with COPY/ADD
fix(deps): update github.com/containers/luksy digest to 3d2cf0e
Makefile: softcode `strip`, use it from env var
Man page updates
Add support for passing CDI specs to --device
Update comments on some API objects
pkg/parse.DeviceFromPath(): dereference src symlinks
fix(deps): update module github.com/onsi/ginkgo/v2 to v2.17.1
## v1.35.0 (2024-03-06) ## v1.35.0 (2024-03-06)
fix(deps): update module github.com/stretchr/testify to v1.9.0 fix(deps): update module github.com/stretchr/testify to v1.9.0

View File

@ -1,3 +1,61 @@
- Changelog for v1.36.0 (2024-05-23)
* build: be more selective about specifying the default OS
* Bump to c/common v0.59.0
* Fix buildah prune --help showing the same example twice
* fix(deps): update module github.com/onsi/ginkgo/v2 to v2.18.0
* fix(deps): update module github.com/containers/image/v5 to v5.31.0
* bud tests: fix breakage when vendoring into podman
* Integration tests: fake up a replacement for nixery.dev/shell
* copierWithSubprocess(): try to capture stderr on io.ErrClosedPipe
* Don't expand RUN heredocs ourselves, let the shell do it
* Don't leak temp files on failures
* Add release note template to split dependency chores
* fix CentOS/RHEL build - no BATS there
* fix(deps): update module github.com/containers/luksy to v0.0.0-20240506205542-84b50f50f3ee
* Address CVE-2024-3727
* chore(deps): update module github.com/opencontainers/runtime-spec to v1.2.0
* Builder.cdiSetupDevicesInSpecdefConfig(): use configured CDI dirs
* Setting --arch should set the TARGETARCH build arg
* fix(deps): update module golang.org/x/exp to v0.0.0-20240416160154-fe59bbe5cc7f
* [CI:DOCS] Add link to Buildah image page to README.md
* Don't set GOTOOLCHAIN=local
* fix(deps): update module github.com/cyphar/filepath-securejoin to v0.2.5
* Makefile: set GOTOOLCHAIN=local
* Integration tests: switch some base images
* containerImageRef.NewImageSource: merge the tar filters
* fix(deps): update module github.com/onsi/ginkgo/v2 to v2.17.2
* fix(deps): update module github.com/containers/luksy to v0.0.0-20240408185936-afd8e7619947
* Disable packit builds for centos-stream+epel-next-8
* Makefile: add missing files to $(SOURCES)
* CI VMs: bump to new versions with tmpfs /tmp
* chore(deps): update module golang.org/x/net to v0.23.0 [security]
* integration test: handle new labels in "bud and test --unsetlabel"
* Switch packit configuration to use epel-9-$arch ...
* Give unit tests a bit more time
* Integration tests: remove a couple of duplicated tests
* Integration tests: whitespace tweaks
* Integration tests: don't remove images at start or end of test
* Integration tests: use cached images more
* Integration tests _prefetch: use registry configs
* internal: use fileutils.(Le|E)xists
* pkg/parse: use fileutils.(Le|E)xists
* buildah: use fileutils.(Le|E)xists
* chroot: use fileutils.(Le|E)xists
* vendor: update containers/(common|storage)
* Fix issue/pr lock workflow
* [CI:DOCS] Add golang 1.21 update warning
* heredoc: honor inline COPY irrespective of ignorefiles
* Update install.md
* source-push: add support for --digestfile
* Fix caching when mounting a cached stage with COPY/ADD
* fix(deps): update github.com/containers/luksy digest to 3d2cf0e
* Makefile: softcode `strip`, use it from env var
* Man page updates
* Add support for passing CDI specs to --device
* Update comments on some API objects
* pkg/parse.DeviceFromPath(): dereference src symlinks
* fix(deps): update module github.com/onsi/ginkgo/v2 to v2.17.1
- Changelog for v1.35.0 (2024-03-06) - Changelog for v1.35.0 (2024-03-06)
* fix(deps): update module github.com/stretchr/testify to v1.9.0 * fix(deps): update module github.com/stretchr/testify to v1.9.0
* cgroups: reuse version check from c/common * cgroups: reuse version check from c/common

View File

@ -18,6 +18,7 @@ import (
"sync" "sync"
"syscall" "syscall"
"time" "time"
"unicode"
"github.com/containers/image/v5/pkg/compression" "github.com/containers/image/v5/pkg/compression"
"github.com/containers/storage/pkg/archive" "github.com/containers/storage/pkg/archive"
@ -633,6 +634,15 @@ func copierWithSubprocess(bulkReader io.Reader, bulkWriter io.Writer, req reques
if err2 := cmd.Process.Kill(); err2 != nil { if err2 := cmd.Process.Kill(); err2 != nil {
return nil, fmt.Errorf("killing subprocess: %v; %s: %w", err2, step, err) return nil, fmt.Errorf("killing subprocess: %v; %s: %w", err2, step, err)
} }
if errors.Is(err, io.ErrClosedPipe) || errors.Is(err, syscall.EPIPE) {
err2 := cmd.Wait()
if errorText := strings.TrimFunc(errorBuffer.String(), unicode.IsSpace); errorText != "" {
err = fmt.Errorf("%s: %w", errorText, err)
}
if err2 != nil {
return nil, fmt.Errorf("waiting on subprocess: %v; %s: %w", err2, step, err)
}
}
return nil, fmt.Errorf("%v: %w", step, err) return nil, fmt.Errorf("%v: %w", step, err)
} }
if err = encoder.Encode(req); err != nil { if err = encoder.Encode(req); err != nil {

View File

@ -29,7 +29,7 @@ const (
// identify working containers. // identify working containers.
Package = "buildah" Package = "buildah"
// Version for the Package. Also used by .packit.sh for Packit builds. // Version for the Package. Also used by .packit.sh for Packit builds.
Version = "1.36.0-dev" Version = "1.36.0"
// DefaultRuntime if containers.conf fails. // DefaultRuntime if containers.conf fails.
DefaultRuntime = "runc" DefaultRuntime = "runc"

View File

@ -60,9 +60,10 @@ type HealthConfig struct {
Test []string `json:",omitempty"` Test []string `json:",omitempty"`
// Zero means to inherit. Durations are expressed as integer nanoseconds. // Zero means to inherit. Durations are expressed as integer nanoseconds.
Interval time.Duration `json:",omitempty"` // Interval is the time to wait between checks. Interval time.Duration `json:",omitempty"` // Interval is the time to wait between checks.
Timeout time.Duration `json:",omitempty"` // Timeout is the time to wait before considering the check to have hung. Timeout time.Duration `json:",omitempty"` // Timeout is the time to wait before considering the check to have hung.
StartPeriod time.Duration `json:",omitempty"` // Time to wait after the container starts before running the first check. StartPeriod time.Duration `json:",omitempty"` // Time to wait after the container starts before running the first check.
StartInterval time.Duration `json:",omitempty"` // Time to wait between checks during the StartPeriod.
// Retries is the number of consecutive failures needed to consider a container as unhealthy. // Retries is the number of consecutive failures needed to consider a container as unhealthy.
// Zero means inherit. // Zero means inherit.

View File

@ -952,7 +952,7 @@ func (i *containerImageSource) GetBlob(ctx context.Context, blob types.BlobInfo,
// makeExtraImageContentDiff creates an archive file containing the contents of // makeExtraImageContentDiff creates an archive file containing the contents of
// files named in i.extraImageContent. The footer that marks the end of the // files named in i.extraImageContent. The footer that marks the end of the
// archive may be omitted. // archive may be omitted.
func (i *containerImageRef) makeExtraImageContentDiff(includeFooter bool) (string, digest.Digest, int64, error) { func (i *containerImageRef) makeExtraImageContentDiff(includeFooter bool) (_ string, _ digest.Digest, _ int64, retErr error) {
cdir, err := i.store.ContainerDirectory(i.containerID) cdir, err := i.store.ContainerDirectory(i.containerID)
if err != nil { if err != nil {
return "", "", -1, err return "", "", -1, err
@ -962,6 +962,11 @@ func (i *containerImageRef) makeExtraImageContentDiff(includeFooter bool) (strin
return "", "", -1, err return "", "", -1, err
} }
defer diff.Close() defer diff.Close()
defer func() {
if retErr != nil {
os.Remove(diff.Name())
}
}()
digester := digest.Canonical.Digester() digester := digest.Canonical.Digester()
counter := ioutils.NewWriteCounter(digester.Hash()) counter := ioutils.NewWriteCounter(digester.Hash())
tw := tar.NewWriter(io.MultiWriter(diff, counter)) tw := tar.NewWriter(io.MultiWriter(diff, counter))
@ -1001,10 +1006,10 @@ func (i *containerImageRef) makeExtraImageContentDiff(includeFooter bool) (strin
} }
} }
if !includeFooter { if !includeFooter {
return diff.Name(), "", -1, err return diff.Name(), "", -1, nil
} }
tw.Close() tw.Close()
return diff.Name(), digester.Digest(), counter.Count, err return diff.Name(), digester.Digest(), counter.Count, nil
} }
// makeContainerImageRef creates a containers/image/v5/types.ImageReference // makeContainerImageRef creates a containers/image/v5/types.ImageReference

View File

@ -11,6 +11,7 @@ import (
"os" "os"
"os/exec" "os/exec"
"path/filepath" "path/filepath"
"runtime"
"strconv" "strconv"
"strings" "strings"
"sync" "sync"
@ -221,6 +222,9 @@ func BuildDockerfiles(ctx context.Context, store storage.Store, options define.B
systemContext := options.SystemContext systemContext := options.SystemContext
for _, platform := range options.Platforms { for _, platform := range options.Platforms {
platformContext := *systemContext platformContext := *systemContext
if platform.OS == "" && platform.Arch != "" {
platform.OS = runtime.GOOS
}
platformSpec := internalUtil.NormalizePlatform(v1.Platform{ platformSpec := internalUtil.NormalizePlatform(v1.Platform{
OS: platform.OS, OS: platform.OS,
Architecture: platform.Arch, Architecture: platform.Arch,

View File

@ -1659,7 +1659,7 @@ func (b *Builder) getTmpfsMount(tokens []string, idMaps IDMaps) (*specs.Mount, e
return &volumes[0], nil return &volumes[0], nil
} }
func (b *Builder) getSecretMount(tokens []string, secrets map[string]define.Secret, idMaps IDMaps, workdir string) (*specs.Mount, string, error) { func (b *Builder) getSecretMount(tokens []string, secrets map[string]define.Secret, idMaps IDMaps, workdir string) (_ *specs.Mount, _ string, retErr error) {
errInvalidSyntax := errors.New("secret should have syntax id=id[,target=path,required=bool,mode=uint,uid=uint,gid=uint") errInvalidSyntax := errors.New("secret should have syntax id=id[,target=path,required=bool,mode=uint,uid=uint,gid=uint")
if len(tokens) == 0 { if len(tokens) == 0 {
return nil, "", errInvalidSyntax return nil, "", errInvalidSyntax
@ -1739,6 +1739,11 @@ func (b *Builder) getSecretMount(tokens []string, secrets map[string]define.Secr
if err != nil { if err != nil {
return nil, "", err return nil, "", err
} }
defer func() {
if retErr != nil {
os.Remove(tmpFile.Name())
}
}()
envFile = tmpFile.Name() envFile = tmpFile.Name()
ctrFileOnHost = tmpFile.Name() ctrFileOnHost = tmpFile.Name()
case "file": case "file":

View File

@ -1,4 +1,4 @@
package version package version
// Version is the version of the build. // Version is the version of the build.
const Version = "0.60.0-dev" const Version = "0.59.0"

View File

@ -389,9 +389,10 @@ type HealthConfig struct {
Test []string `json:"Test,omitempty" yaml:"Test,omitempty" toml:"Test,omitempty"` Test []string `json:"Test,omitempty" yaml:"Test,omitempty" toml:"Test,omitempty"`
// Zero means to inherit. Durations are expressed as integer nanoseconds. // Zero means to inherit. Durations are expressed as integer nanoseconds.
Interval time.Duration `json:"Interval,omitempty" yaml:"Interval,omitempty" toml:"Interval,omitempty"` // Interval is the time to wait between checks. Interval time.Duration `json:"Interval,omitempty" yaml:"Interval,omitempty" toml:"Interval,omitempty"` // Interval is the time to wait between checks.
Timeout time.Duration `json:"Timeout,omitempty" yaml:"Timeout,omitempty" toml:"Timeout,omitempty"` // Timeout is the time to wait before considering the check to have hung. Timeout time.Duration `json:"Timeout,omitempty" yaml:"Timeout,omitempty" toml:"Timeout,omitempty"` // Timeout is the time to wait before considering the check to have hung.
StartPeriod time.Duration `json:"StartPeriod,omitempty" yaml:"StartPeriod,omitempty" toml:"StartPeriod,omitempty"` // The start period for the container to initialize before the retries starts to count down. StartPeriod time.Duration `json:"StartPeriod,omitempty" yaml:"StartPeriod,omitempty" toml:"StartPeriod,omitempty"` // The start period for the container to initialize before the retries starts to count down.
StartInterval time.Duration `json:"StartInterval,omitempty" yaml:"StartInterval,omitempty" toml:"StartInterval,omitempty"` // The start interval is the time to wait between checks during the start period.
// Retries is the number of consecutive failures needed to consider a container as unhealthy. // Retries is the number of consecutive failures needed to consider a container as unhealthy.
// Zero means inherit. // Zero means inherit.
@ -555,6 +556,7 @@ type HostConfig struct {
PublishAllPorts bool `json:"PublishAllPorts,omitempty" yaml:"PublishAllPorts,omitempty" toml:"PublishAllPorts,omitempty"` PublishAllPorts bool `json:"PublishAllPorts,omitempty" yaml:"PublishAllPorts,omitempty" toml:"PublishAllPorts,omitempty"`
ReadonlyRootfs bool `json:"ReadonlyRootfs,omitempty" yaml:"ReadonlyRootfs,omitempty" toml:"ReadonlyRootfs,omitempty"` ReadonlyRootfs bool `json:"ReadonlyRootfs,omitempty" yaml:"ReadonlyRootfs,omitempty" toml:"ReadonlyRootfs,omitempty"`
AutoRemove bool `json:"AutoRemove,omitempty" yaml:"AutoRemove,omitempty" toml:"AutoRemove,omitempty"` AutoRemove bool `json:"AutoRemove,omitempty" yaml:"AutoRemove,omitempty" toml:"AutoRemove,omitempty"`
Annotations map[string]string `json:"Annotations,omitempty" yaml:"Annotations,omitempty" toml:"Annotations,omitempty"`
} }
// NetworkingConfig represents the container's networking configuration for each of its interfaces // NetworkingConfig represents the container's networking configuration for each of its interfaces

View File

@ -9,7 +9,11 @@ go:
- "1.20" - "1.20"
before_install: before_install:
- sudo systemctl stop docker.service && sudo systemctl stop docker.socket
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- yes | sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- sudo apt-get update -q -y - sudo apt-get update -q -y
- sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
- docker pull busybox - docker pull busybox
- docker pull centos:7 - docker pull centos:7
- chmod -R go-w ./dockerclient/testdata - chmod -R go-w ./dockerclient/testdata

View File

@ -23,6 +23,7 @@ import (
"github.com/openshift/imagebuilder/signal" "github.com/openshift/imagebuilder/signal"
"github.com/openshift/imagebuilder/strslice" "github.com/openshift/imagebuilder/strslice"
buildkitcommand "github.com/moby/buildkit/frontend/dockerfile/command"
buildkitparser "github.com/moby/buildkit/frontend/dockerfile/parser" buildkitparser "github.com/moby/buildkit/frontend/dockerfile/parser"
buildkitshell "github.com/moby/buildkit/frontend/dockerfile/shell" buildkitshell "github.com/moby/buildkit/frontend/dockerfile/shell"
) )
@ -130,7 +131,7 @@ func label(b *Builder, args []string, attributes map[string]bool, flagArgs []str
return nil return nil
} }
func processHereDocs(originalInstruction string, heredocs []buildkitparser.Heredoc, args []string) ([]File, error) { func processHereDocs(instruction, originalInstruction string, heredocs []buildkitparser.Heredoc, args []string) ([]File, error) {
var files []File var files []File
for _, heredoc := range heredocs { for _, heredoc := range heredocs {
var err error var err error
@ -138,7 +139,7 @@ func processHereDocs(originalInstruction string, heredocs []buildkitparser.Hered
if heredoc.Chomp { if heredoc.Chomp {
content = buildkitparser.ChompHeredocContent(content) content = buildkitparser.ChompHeredocContent(content)
} }
if heredoc.Expand { if heredoc.Expand && !strings.EqualFold(instruction, buildkitcommand.Run) {
shlex := buildkitshell.NewLex('\\') shlex := buildkitshell.NewLex('\\')
shlex.RawQuotes = true shlex.RawQuotes = true
shlex.RawEscapes = true shlex.RawEscapes = true
@ -202,7 +203,7 @@ func add(b *Builder, args []string, attributes map[string]bool, flagArgs []strin
return fmt.Errorf("ADD only supports the --chmod=<permissions>, --chown=<uid:gid>, and --checksum=<checksum> flags") return fmt.Errorf("ADD only supports the --chmod=<permissions>, --chown=<uid:gid>, and --checksum=<checksum> flags")
} }
} }
files, err := processHereDocs(original, heredocs, userArgs) files, err := processHereDocs(buildkitcommand.Add, original, heredocs, userArgs)
if err != nil { if err != nil {
return err return err
} }
@ -256,7 +257,7 @@ func dispatchCopy(b *Builder, args []string, attributes map[string]bool, flagArg
return fmt.Errorf("COPY only supports the --chmod=<permissions> --chown=<uid:gid> and the --from=<image|stage> flags") return fmt.Errorf("COPY only supports the --chmod=<permissions> --chown=<uid:gid> and the --from=<image|stage> flags")
} }
} }
files, err := processHereDocs(original, heredocs, userArgs) files, err := processHereDocs(buildkitcommand.Copy, original, heredocs, userArgs)
if err != nil { if err != nil {
return err return err
} }
@ -422,7 +423,7 @@ func run(b *Builder, args []string, attributes map[string]bool, flagArgs []strin
} }
} }
files, err := processHereDocs(original, heredocs, userArgs) files, err := processHereDocs(buildkitcommand.Run, original, heredocs, userArgs)
if err != nil { if err != nil {
return err return err
} }
@ -606,6 +607,7 @@ func healthcheck(b *Builder, args []string, attributes map[string]bool, flagArgs
flags := flag.NewFlagSet("", flag.ContinueOnError) flags := flag.NewFlagSet("", flag.ContinueOnError)
flags.String("start-period", "", "") flags.String("start-period", "", "")
flags.String("start-interval", "", "")
flags.String("interval", "", "") flags.String("interval", "", "")
flags.String("timeout", "", "") flags.String("timeout", "", "")
flRetries := flags.String("retries", "", "") flRetries := flags.String("retries", "", "")
@ -642,6 +644,12 @@ func healthcheck(b *Builder, args []string, attributes map[string]bool, flagArgs
} }
healthcheck.Interval = interval healthcheck.Interval = interval
startInterval, err := parseOptInterval(flags.Lookup("start-interval"))
if err != nil {
return err
}
healthcheck.StartInterval = startInterval
timeout, err := parseOptInterval(flags.Lookup("timeout")) timeout, err := parseOptInterval(flags.Lookup("timeout"))
if err != nil { if err != nil {
return err return err

View File

@ -12,7 +12,7 @@
# #
%global golang_version 1.19 %global golang_version 1.19
%{!?version: %global version 1.2.7} %{!?version: %global version 1.2.9}
%{!?release: %global release 1} %{!?release: %global release 1}
%global package_name imagebuilder %global package_name imagebuilder
%global product_name Container Image Builder %global product_name Container Image Builder

12
vendor/modules.txt vendored
View File

@ -141,7 +141,7 @@ github.com/containernetworking/cni/pkg/version
# github.com/containernetworking/plugins v1.5.0 # github.com/containernetworking/plugins v1.5.0
## explicit; go 1.20 ## explicit; go 1.20
github.com/containernetworking/plugins/pkg/ns github.com/containernetworking/plugins/pkg/ns
# github.com/containers/buildah v1.35.1-0.20240510150258-77f239ae12e5 # github.com/containers/buildah v1.36.0
## explicit; go 1.21 ## explicit; go 1.21
github.com/containers/buildah github.com/containers/buildah
github.com/containers/buildah/bind github.com/containers/buildah/bind
@ -171,7 +171,7 @@ github.com/containers/buildah/pkg/sshagent
github.com/containers/buildah/pkg/util github.com/containers/buildah/pkg/util
github.com/containers/buildah/pkg/volumes github.com/containers/buildah/pkg/volumes
github.com/containers/buildah/util github.com/containers/buildah/util
# github.com/containers/common v0.58.1-0.20240523020001-79d954c77663 # github.com/containers/common v0.59.0
## explicit; go 1.21 ## explicit; go 1.21
github.com/containers/common/internal github.com/containers/common/internal
github.com/containers/common/internal/attributedstring github.com/containers/common/internal/attributedstring
@ -325,7 +325,7 @@ github.com/containers/libhvee/pkg/wmiext
# github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 # github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01
## explicit ## explicit
github.com/containers/libtrust github.com/containers/libtrust
# github.com/containers/luksy v0.0.0-20240408185936-afd8e7619947 # github.com/containers/luksy v0.0.0-20240506205542-84b50f50f3ee
## explicit; go 1.20 ## explicit; go 1.20
github.com/containers/luksy github.com/containers/luksy
# github.com/containers/ocicrypt v1.1.10 # github.com/containers/ocicrypt v1.1.10
@ -529,8 +529,8 @@ github.com/felixge/httpsnoop
# github.com/fsnotify/fsnotify v1.7.0 # github.com/fsnotify/fsnotify v1.7.0
## explicit; go 1.17 ## explicit; go 1.17
github.com/fsnotify/fsnotify github.com/fsnotify/fsnotify
# github.com/fsouza/go-dockerclient v1.10.1 # github.com/fsouza/go-dockerclient v1.11.0
## explicit; go 1.20 ## explicit; go 1.21
github.com/fsouza/go-dockerclient github.com/fsouza/go-dockerclient
# github.com/gabriel-vasile/mimetype v1.4.3 # github.com/gabriel-vasile/mimetype v1.4.3
## explicit; go 1.20 ## explicit; go 1.20
@ -911,7 +911,7 @@ github.com/opencontainers/selinux/go-selinux
github.com/opencontainers/selinux/go-selinux/label github.com/opencontainers/selinux/go-selinux/label
github.com/opencontainers/selinux/pkg/pwalk github.com/opencontainers/selinux/pkg/pwalk
github.com/opencontainers/selinux/pkg/pwalkdir github.com/opencontainers/selinux/pkg/pwalkdir
# github.com/openshift/imagebuilder v1.2.7 # github.com/openshift/imagebuilder v1.2.9
## explicit; go 1.19 ## explicit; go 1.19
github.com/openshift/imagebuilder github.com/openshift/imagebuilder
github.com/openshift/imagebuilder/dockerfile/command github.com/openshift/imagebuilder/dockerfile/command