mirror of
https://github.com/podman-container-tools/podman.git
synced 2026-11-02 09:07:33 +00:00
Merge pull request #16802 from TomSweeneyRedHat/dev/tsweeney/buildah_1.27.3
[v4.2-rhel] Bump Buildah to v1.27.3
This commit is contained in:
commit
bfac4a5de2
24 changed files with 165 additions and 99 deletions
|
|
@ -19,6 +19,7 @@ import (
|
|||
"github.com/containers/common/pkg/completion"
|
||||
"github.com/containers/common/pkg/config"
|
||||
"github.com/containers/image/v5/docker/reference"
|
||||
"github.com/containers/image/v5/types"
|
||||
encconfig "github.com/containers/ocicrypt/config"
|
||||
enchelpers "github.com/containers/ocicrypt/helpers"
|
||||
"github.com/containers/podman/v4/cmd/podman/common"
|
||||
|
|
@ -610,6 +611,10 @@ func buildFlagsWrapperToOptions(c *cobra.Command, contextDir string, flags *buil
|
|||
opts.Excludes = excludes
|
||||
}
|
||||
|
||||
if c.Flag("skip-unused-stages").Changed {
|
||||
opts.SkipUnusedStages = types.NewOptionalBool(flags.SkipUnusedStages)
|
||||
}
|
||||
|
||||
if c.Flag("timestamp").Changed {
|
||||
timestamp := time.Unix(flags.Timestamp, 0).UTC()
|
||||
opts.Timestamp = ×tamp
|
||||
|
|
|
|||
|
|
@ -680,6 +680,10 @@ size entirely, the system uses `64m`.
|
|||
|
||||
Sign the image using a GPG key with the specified FINGERPRINT. (This option is not available with the remote Podman client, including Mac and Windows (excluding WSL2) machines,)
|
||||
|
||||
#### **--skip-unused-stages**
|
||||
|
||||
Skip stages in multi-stage builds which don't affect the target stage. (Default: **true**).
|
||||
|
||||
#### **--squash**
|
||||
|
||||
Squash all of the image's new layers into a single new layer; any preexisting
|
||||
|
|
|
|||
4
go.mod
4
go.mod
|
|
@ -11,7 +11,7 @@ require (
|
|||
github.com/container-orchestrated-devices/container-device-interface v0.4.0
|
||||
github.com/containernetworking/cni v1.1.2
|
||||
github.com/containernetworking/plugins v1.1.1
|
||||
github.com/containers/buildah v1.27.1
|
||||
github.com/containers/buildah v1.27.3
|
||||
github.com/containers/common v0.49.2
|
||||
github.com/containers/conmon v2.0.20+incompatible
|
||||
github.com/containers/image/v5 v5.22.1
|
||||
|
|
@ -49,7 +49,7 @@ require (
|
|||
github.com/opencontainers/runc v1.1.3
|
||||
github.com/opencontainers/runtime-spec v1.0.3-0.20211214071223-8958f93039ab
|
||||
github.com/opencontainers/runtime-tools v0.9.1-0.20220714195903-17b3287fafb7
|
||||
github.com/opencontainers/selinux v1.10.1
|
||||
github.com/opencontainers/selinux v1.10.2
|
||||
github.com/rootless-containers/rootlesskit v1.0.1
|
||||
github.com/sirupsen/logrus v1.9.0
|
||||
github.com/spf13/cobra v1.5.0
|
||||
|
|
|
|||
7
go.sum
7
go.sum
|
|
@ -392,8 +392,8 @@ github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRD
|
|||
github.com/containernetworking/plugins v1.0.1/go.mod h1:QHCfGpaTwYTbbH+nZXKVTxNBDZcxSOplJT5ico8/FLE=
|
||||
github.com/containernetworking/plugins v1.1.1 h1:+AGfFigZ5TiQH00vhR8qPeSatj53eNGz0C1d3wVYlHE=
|
||||
github.com/containernetworking/plugins v1.1.1/go.mod h1:Sr5TH/eBsGLXK/h71HeLfX19sZPp3ry5uHSkI4LPxV8=
|
||||
github.com/containers/buildah v1.27.1 h1:i5yP3uJBq9mKANOP4WA+5x9cBuEQ4FJIAzEPoPzRrXQ=
|
||||
github.com/containers/buildah v1.27.1/go.mod h1:anH3ExvDXRNP9zLQCrOc1vWb5CrhqLF/aYFim4tslvA=
|
||||
github.com/containers/buildah v1.27.3 h1:I/Hmzof5slWavK+q1dfojDKL6gA/vgucH41S1cPkdR0=
|
||||
github.com/containers/buildah v1.27.3/go.mod h1:0CCJONK1uVGa0GE+i7F5y2zgSFrcDcCy2Zigpa4uVKo=
|
||||
github.com/containers/common v0.49.1/go.mod h1:ueM5hT0itKqCQvVJDs+EtjornAQtrHYxQJzP2gxeGIg=
|
||||
github.com/containers/common v0.49.2 h1:gmMScREi9yXItb8Za47FMXol09Gx3hyzw7+ETPX7rao=
|
||||
github.com/containers/common v0.49.2/go.mod h1:ueM5hT0itKqCQvVJDs+EtjornAQtrHYxQJzP2gxeGIg=
|
||||
|
|
@ -1312,8 +1312,9 @@ github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xA
|
|||
github.com/opencontainers/selinux v1.8.5/go.mod h1:HTvjPFoGMbpQsG886e3lQwnsRWtE4TC1OF3OUvG9FAo=
|
||||
github.com/opencontainers/selinux v1.9.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI=
|
||||
github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI=
|
||||
github.com/opencontainers/selinux v1.10.1 h1:09LIPVRP3uuZGQvgR+SgMSNBd1Eb3vlRbGqQpoHsF8w=
|
||||
github.com/opencontainers/selinux v1.10.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI=
|
||||
github.com/opencontainers/selinux v1.10.2 h1:NFy2xCsjn7+WspbfZkUd5zyVeisV7VFbPSP96+8/ha4=
|
||||
github.com/opencontainers/selinux v1.10.2/go.mod h1:cARutUbaUrlRClyvxOICCgKixCs6L05aUsohzA3EkHQ=
|
||||
github.com/openshift/imagebuilder v1.2.4-0.20220711175835-4151e43600df h1:vf6pdI10F2Tim5a9JKiVVl4/dpNz1OEhz4EnfLdLtiA=
|
||||
github.com/openshift/imagebuilder v1.2.4-0.20220711175835-4151e43600df/go.mod h1:TRYHe4CH9U6nkDjxjBNM5klrLbJBrRbpJE5SaRwUBsQ=
|
||||
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
|
||||
|
|
|
|||
|
|
@ -130,6 +130,7 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
|
|||
Secrets string `schema:"secrets"`
|
||||
SecurityOpt string `schema:"securityopt"`
|
||||
ShmSize int `schema:"shmsize"`
|
||||
SkipUnusedStages bool `schema:"skipunusedstages"`
|
||||
Squash bool `schema:"squash"`
|
||||
TLSVerify bool `schema:"tlsVerify"`
|
||||
Tags []string `schema:"t"`
|
||||
|
|
@ -138,12 +139,13 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
|
|||
Ulimits string `schema:"ulimits"`
|
||||
UnsetEnvs []string `schema:"unsetenv"`
|
||||
}{
|
||||
Dockerfile: "Dockerfile",
|
||||
IdentityLabel: true,
|
||||
Registry: "docker.io",
|
||||
Rm: true,
|
||||
ShmSize: 64 * 1024 * 1024,
|
||||
TLSVerify: true,
|
||||
Dockerfile: "Dockerfile",
|
||||
IdentityLabel: true,
|
||||
Registry: "docker.io",
|
||||
Rm: true,
|
||||
ShmSize: 64 * 1024 * 1024,
|
||||
TLSVerify: true,
|
||||
SkipUnusedStages: true,
|
||||
}
|
||||
|
||||
decoder := r.Context().Value(api.DecoderKey).(*schema.Decoder)
|
||||
|
|
@ -666,6 +668,7 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
|
|||
RemoveIntermediateCtrs: query.Rm,
|
||||
ReportWriter: reporter,
|
||||
RusageLogFile: query.RusageLogFile,
|
||||
SkipUnusedStages: types.NewOptionalBool(query.SkipUnusedStages),
|
||||
Squash: query.Squash,
|
||||
SystemContext: systemContext,
|
||||
Target: query.Target,
|
||||
|
|
|
|||
|
|
@ -227,6 +227,14 @@ func Build(ctx context.Context, containerFiles []string, options entities.BuildO
|
|||
if options.CacheFrom != nil {
|
||||
params.Set("cachefrom", options.CacheFrom.String())
|
||||
}
|
||||
|
||||
switch options.SkipUnusedStages {
|
||||
case types.OptionalBoolTrue:
|
||||
params.Set("skipunusedstages", "1")
|
||||
case types.OptionalBoolFalse:
|
||||
params.Set("skipunusedstages", "0")
|
||||
}
|
||||
|
||||
if options.CacheTo != nil {
|
||||
params.Set("cacheto", options.CacheTo.String())
|
||||
}
|
||||
|
|
|
|||
10
vendor/github.com/containers/buildah/CHANGELOG.md
generated
vendored
10
vendor/github.com/containers/buildah/CHANGELOG.md
generated
vendored
|
|
@ -2,9 +2,17 @@
|
|||
|
||||
# Changelog
|
||||
|
||||
## v1.27.3 (2022-12-09)
|
||||
|
||||
copier.Put(): clear up os/syscall mode bit confusion
|
||||
|
||||
## v1.27.2 (2022-09-20)
|
||||
|
||||
build: backport the --skip-unused-stages flag.
|
||||
|
||||
## v1.27.1 (2022-09-09)
|
||||
|
||||
run: add container gid to additional groups.
|
||||
run: add container gid to additional groups.
|
||||
|
||||
## v1.27.0 (2022-08-01)
|
||||
|
||||
|
|
|
|||
6
vendor/github.com/containers/buildah/changelog.txt
generated
vendored
6
vendor/github.com/containers/buildah/changelog.txt
generated
vendored
|
|
@ -1,3 +1,9 @@
|
|||
- Changelog for v1.27.3 (2022-12-09)
|
||||
* copier.Put(): clear up os/syscall mode bit confusion
|
||||
|
||||
- Changelog for v1.27.2 (2022-09-20)
|
||||
* build: backport the --skip-unused-stages flag.
|
||||
|
||||
- Changelog for v1.27.1 (2022-09-09)
|
||||
* run: add container gid to additional groups.
|
||||
|
||||
|
|
|
|||
27
vendor/github.com/containers/buildah/copier/copier.go
generated
vendored
27
vendor/github.com/containers/buildah/copier/copier.go
generated
vendored
|
|
@ -1566,15 +1566,15 @@ func copierHandlerPut(bulkReader io.Reader, req request, idMappings *idtools.IDM
|
|||
return nil
|
||||
}
|
||||
makeDirectoryWriteable := func(directory string) error {
|
||||
st, err := os.Lstat(directory)
|
||||
if err != nil {
|
||||
return fmt.Errorf("copier: put: error reading permissions of directory %q: %w", directory, err)
|
||||
}
|
||||
mode := st.Mode() & os.ModePerm
|
||||
if _, ok := directoryModes[directory]; !ok {
|
||||
st, err := os.Lstat(directory)
|
||||
if err != nil {
|
||||
return fmt.Errorf("copier: put: error reading permissions of directory %q: %w", directory, err)
|
||||
}
|
||||
mode := st.Mode()
|
||||
directoryModes[directory] = mode
|
||||
}
|
||||
if err = os.Chmod(directory, 0o700); err != nil {
|
||||
if err := os.Chmod(directory, 0o700); err != nil {
|
||||
return fmt.Errorf("copier: put: error making directory %q writable: %w", directory, err)
|
||||
}
|
||||
return nil
|
||||
|
|
@ -1860,16 +1860,21 @@ func copierHandlerPut(bulkReader io.Reader, req request, idMappings *idtools.IDM
|
|||
// set other bits that might have been reset by chown()
|
||||
if hdr.Typeflag != tar.TypeSymlink {
|
||||
if hdr.Mode&cISUID == cISUID {
|
||||
mode |= syscall.S_ISUID
|
||||
mode |= os.ModeSetuid
|
||||
}
|
||||
if hdr.Mode&cISGID == cISGID {
|
||||
mode |= syscall.S_ISGID
|
||||
mode |= os.ModeSetgid
|
||||
}
|
||||
if hdr.Mode&cISVTX == cISVTX {
|
||||
mode |= syscall.S_ISVTX
|
||||
mode |= os.ModeSticky
|
||||
}
|
||||
if err = syscall.Chmod(path, uint32(mode)); err != nil {
|
||||
return fmt.Errorf("error setting additional permissions on %q to 0%o: %w", path, mode, err)
|
||||
if hdr.Typeflag == tar.TypeDir {
|
||||
// if/when we do the final setting of permissions on this
|
||||
// directory, make sure to incorporate these bits, too
|
||||
directoryModes[path] = mode
|
||||
}
|
||||
if err = os.Chmod(path, mode); err != nil {
|
||||
return fmt.Errorf("copier: put: setting additional permissions on %q to 0%o: %w", path, mode, err)
|
||||
}
|
||||
}
|
||||
// set xattrs, including some that might have been reset by chown()
|
||||
|
|
|
|||
4
vendor/github.com/containers/buildah/define/build.go
generated
vendored
4
vendor/github.com/containers/buildah/define/build.go
generated
vendored
|
|
@ -186,6 +186,10 @@ type BuildOptions struct {
|
|||
// specified, indicating that the shared, system-wide default policy
|
||||
// should be used.
|
||||
SignaturePolicyPath string
|
||||
// SkipUnusedStages allows users to skip stages in a multi-stage builds
|
||||
// which do not contribute anything to the target stage. Expected default
|
||||
// value is true.
|
||||
SkipUnusedStages types.OptionalBool
|
||||
// ReportWriter is an io.Writer which will be used to report the
|
||||
// progress of the (possible) pulling of the source image and the
|
||||
// writing of the new image.
|
||||
|
|
|
|||
2
vendor/github.com/containers/buildah/define/types.go
generated
vendored
2
vendor/github.com/containers/buildah/define/types.go
generated
vendored
|
|
@ -30,7 +30,7 @@ const (
|
|||
Package = "buildah"
|
||||
// Version for the Package. Bump version in contrib/rpm/buildah.spec
|
||||
// too.
|
||||
Version = "1.27.1"
|
||||
Version = "1.27.3"
|
||||
|
||||
// DefaultRuntime if containers.conf fails.
|
||||
DefaultRuntime = "runc"
|
||||
|
|
|
|||
6
vendor/github.com/containers/buildah/go.mod
generated
vendored
6
vendor/github.com/containers/buildah/go.mod
generated
vendored
|
|
@ -6,9 +6,9 @@ require (
|
|||
github.com/containerd/containerd v1.6.6
|
||||
github.com/containernetworking/cni v1.1.2
|
||||
github.com/containers/common v0.49.1
|
||||
github.com/containers/image/v5 v5.22.0
|
||||
github.com/containers/image/v5 v5.22.1
|
||||
github.com/containers/ocicrypt v1.1.5
|
||||
github.com/containers/storage v1.42.0
|
||||
github.com/containers/storage v1.42.1-0.20221104172635-d3b97ec7b760
|
||||
github.com/docker/distribution v2.8.1+incompatible
|
||||
github.com/docker/docker v20.10.17+incompatible
|
||||
github.com/docker/go-units v0.4.0
|
||||
|
|
@ -23,7 +23,7 @@ require (
|
|||
github.com/opencontainers/runc v1.1.3
|
||||
github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417
|
||||
github.com/opencontainers/runtime-tools v0.9.1-0.20220714195903-17b3287fafb7
|
||||
github.com/opencontainers/selinux v1.10.1
|
||||
github.com/opencontainers/selinux v1.10.2
|
||||
github.com/openshift/imagebuilder v1.2.4-0.20220711175835-4151e43600df
|
||||
github.com/seccomp/libseccomp-golang v0.10.0
|
||||
github.com/sirupsen/logrus v1.9.0
|
||||
|
|
|
|||
9
vendor/github.com/containers/buildah/go.sum
generated
vendored
9
vendor/github.com/containers/buildah/go.sum
generated
vendored
|
|
@ -348,8 +348,9 @@ github.com/containernetworking/plugins v1.1.1 h1:+AGfFigZ5TiQH00vhR8qPeSatj53eNG
|
|||
github.com/containernetworking/plugins v1.1.1/go.mod h1:Sr5TH/eBsGLXK/h71HeLfX19sZPp3ry5uHSkI4LPxV8=
|
||||
github.com/containers/common v0.49.1 h1:6y4/s2WwYxrv+Cox7fotOo316wuZI+iKKPUQweCYv50=
|
||||
github.com/containers/common v0.49.1/go.mod h1:ueM5hT0itKqCQvVJDs+EtjornAQtrHYxQJzP2gxeGIg=
|
||||
github.com/containers/image/v5 v5.22.0 h1:KemxPmD4D2YYOFZN2SgoTk7nBFcnwPiPW0MqjYtknSE=
|
||||
github.com/containers/image/v5 v5.22.0/go.mod h1:D8Ksv2RNB8qLJ7xe1P3rgJJOSQpahA6amv2Ax++/YO4=
|
||||
github.com/containers/image/v5 v5.22.1 h1:Oj8C/ACrNn18f8MNTqOeBOHAN51GF1rEhoVSCA/ylvI=
|
||||
github.com/containers/image/v5 v5.22.1/go.mod h1:D8Ksv2RNB8qLJ7xe1P3rgJJOSQpahA6amv2Ax++/YO4=
|
||||
github.com/containers/libtrust v0.0.0-20200511145503-9c3a6c22cd9a h1:spAGlqziZjCJL25C6F1zsQY05tfCKE9F5YwtEWWe6hU=
|
||||
github.com/containers/libtrust v0.0.0-20200511145503-9c3a6c22cd9a/go.mod h1:9rfv8iPl1ZP7aqh9YA68wnZv2NUDbXdcdPHVz0pFbPY=
|
||||
github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc=
|
||||
|
|
@ -360,8 +361,9 @@ github.com/containers/ocicrypt v1.1.3/go.mod h1:xpdkbVAuaH3WzbEabUd5yDsl9SwJA5pA
|
|||
github.com/containers/ocicrypt v1.1.5 h1:UO+gBnBXvMvC7HTXLh0bPgLslfW8HlY+oxYcoSHBcZQ=
|
||||
github.com/containers/ocicrypt v1.1.5/go.mod h1:WgjxPWdTJMqYMjf3M6cuIFFA1/MpyyhIM99YInA+Rvc=
|
||||
github.com/containers/storage v1.37.0/go.mod h1:kqeJeS0b7DO2ZT1nVWs0XufrmPFbgV3c+Q/45RlH6r4=
|
||||
github.com/containers/storage v1.42.0 h1:zm2AQD4NDeTB3JQ8X+Wo5+VRqNB+b4ocEd7Qj6ylPJA=
|
||||
github.com/containers/storage v1.42.0/go.mod h1:JiUJwOgOo1dr2DdOUc1MRe2GCAXABYoYmOdPF8yvH78=
|
||||
github.com/containers/storage v1.42.1-0.20221104172635-d3b97ec7b760 h1:naITfBmiyK4M7lLBGwFc8ql6KCZFRDuqu6MQm2SjcoA=
|
||||
github.com/containers/storage v1.42.1-0.20221104172635-d3b97ec7b760/go.mod h1:JiUJwOgOo1dr2DdOUc1MRe2GCAXABYoYmOdPF8yvH78=
|
||||
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
|
||||
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
||||
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
||||
|
|
@ -1077,8 +1079,9 @@ github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xA
|
|||
github.com/opencontainers/selinux v1.8.5/go.mod h1:HTvjPFoGMbpQsG886e3lQwnsRWtE4TC1OF3OUvG9FAo=
|
||||
github.com/opencontainers/selinux v1.9.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI=
|
||||
github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI=
|
||||
github.com/opencontainers/selinux v1.10.1 h1:09LIPVRP3uuZGQvgR+SgMSNBd1Eb3vlRbGqQpoHsF8w=
|
||||
github.com/opencontainers/selinux v1.10.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI=
|
||||
github.com/opencontainers/selinux v1.10.2 h1:NFy2xCsjn7+WspbfZkUd5zyVeisV7VFbPSP96+8/ha4=
|
||||
github.com/opencontainers/selinux v1.10.2/go.mod h1:cARutUbaUrlRClyvxOICCgKixCs6L05aUsohzA3EkHQ=
|
||||
github.com/openshift/imagebuilder v1.2.4-0.20220711175835-4151e43600df h1:vf6pdI10F2Tim5a9JKiVVl4/dpNz1OEhz4EnfLdLtiA=
|
||||
github.com/openshift/imagebuilder v1.2.4-0.20220711175835-4151e43600df/go.mod h1:TRYHe4CH9U6nkDjxjBNM5klrLbJBrRbpJE5SaRwUBsQ=
|
||||
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
|
||||
|
|
|
|||
7
vendor/github.com/containers/buildah/imagebuildah/executor.go
generated
vendored
7
vendor/github.com/containers/buildah/imagebuildah/executor.go
generated
vendored
|
|
@ -82,6 +82,7 @@ type Executor struct {
|
|||
out io.Writer
|
||||
err io.Writer
|
||||
signaturePolicyPath string
|
||||
skipUnusedStages types.OptionalBool
|
||||
systemContext *types.SystemContext
|
||||
reportWriter io.Writer
|
||||
isolation define.Isolation
|
||||
|
|
@ -237,6 +238,7 @@ func newExecutor(logger *logrus.Logger, logPrefix string, store storage.Store, o
|
|||
outputFormat: options.OutputFormat,
|
||||
additionalTags: options.AdditionalTags,
|
||||
signaturePolicyPath: options.SignaturePolicyPath,
|
||||
skipUnusedStages: options.SkipUnusedStages,
|
||||
systemContext: options.SystemContext,
|
||||
log: options.Log,
|
||||
in: options.In,
|
||||
|
|
@ -792,9 +794,10 @@ func (b *Executor) Build(ctx context.Context, stages imagebuilder.Stages) (image
|
|||
return
|
||||
}
|
||||
// Skip stage if it is not needed by TargetStage
|
||||
// or any of its dependency stages.
|
||||
// or any of its dependency stages and `SkipUnusedStages`
|
||||
// is not set to `false`.
|
||||
if stageDependencyInfo, ok := dependencyMap[stages[index].Name]; ok {
|
||||
if !stageDependencyInfo.NeededByTarget {
|
||||
if !stageDependencyInfo.NeededByTarget && b.skipUnusedStages != types.OptionalBoolFalse {
|
||||
logrus.Debugf("Skipping stage with Name %q and index %d since its not needed by the target stage", stages[index].Name, index)
|
||||
ch <- Result{
|
||||
Index: index,
|
||||
|
|
|
|||
2
vendor/github.com/containers/buildah/pkg/cli/build.go
generated
vendored
2
vendor/github.com/containers/buildah/pkg/cli/build.go
generated
vendored
|
|
@ -20,6 +20,7 @@ import (
|
|||
"github.com/containers/buildah/pkg/util"
|
||||
"github.com/containers/common/pkg/auth"
|
||||
"github.com/containers/image/v5/docker/reference"
|
||||
"github.com/containers/image/v5/types"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
|
@ -370,6 +371,7 @@ func GenBuildOptions(c *cobra.Command, inputArgs []string, iopts BuildOptions) (
|
|||
RusageLogFile: iopts.RusageLogFile,
|
||||
SignBy: iopts.SignBy,
|
||||
SignaturePolicyPath: iopts.SignaturePolicy,
|
||||
SkipUnusedStages: types.NewOptionalBool(iopts.SkipUnusedStages),
|
||||
Squash: iopts.Squash,
|
||||
SystemContext: systemContext,
|
||||
Target: iopts.Target,
|
||||
|
|
|
|||
2
vendor/github.com/containers/buildah/pkg/cli/common.go
generated
vendored
2
vendor/github.com/containers/buildah/pkg/cli/common.go
generated
vendored
|
|
@ -89,6 +89,7 @@ type BudResults struct {
|
|||
SignaturePolicy string
|
||||
SignBy string
|
||||
Squash bool
|
||||
SkipUnusedStages bool
|
||||
Stdin bool
|
||||
Tag []string
|
||||
BuildOutput string
|
||||
|
|
@ -258,6 +259,7 @@ func GetBudFlags(flags *BudResults) pflag.FlagSet {
|
|||
if err := fs.MarkHidden("signature-policy"); err != nil {
|
||||
panic(fmt.Sprintf("error marking the signature-policy flag as hidden: %v", err))
|
||||
}
|
||||
fs.BoolVar(&flags.SkipUnusedStages, "skip-unused-stages", true, "skips stages in multi-stage builds which do not affect the final target")
|
||||
fs.BoolVar(&flags.Squash, "squash", false, "squash newly built layers into a single new layer")
|
||||
fs.StringArrayVar(&flags.SSH, "ssh", []string{}, "SSH agent socket or keys to expose to the build. (format: default|<id>[=<socket>|<key>[,<key>]])")
|
||||
fs.BoolVar(&flags.Stdin, "stdin", false, "pass stdin into containers")
|
||||
|
|
|
|||
1
vendor/github.com/opencontainers/selinux/go-selinux/doc.go
generated
vendored
1
vendor/github.com/opencontainers/selinux/go-selinux/doc.go
generated
vendored
|
|
@ -9,6 +9,5 @@ Usage:
|
|||
if selinux.EnforceMode() != selinux.Enforcing {
|
||||
selinux.SetEnforceMode(selinux.Enforcing)
|
||||
}
|
||||
|
||||
*/
|
||||
package selinux
|
||||
|
|
|
|||
46
vendor/github.com/opencontainers/selinux/go-selinux/label/label_linux.go
generated
vendored
46
vendor/github.com/opencontainers/selinux/go-selinux/label/label_linux.go
generated
vendored
|
|
@ -3,8 +3,6 @@ package label
|
|||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"os/user"
|
||||
"strings"
|
||||
|
||||
"github.com/opencontainers/selinux/go-selinux"
|
||||
|
|
@ -113,50 +111,6 @@ func Relabel(path string, fileLabel string, shared bool) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
exclude_paths := map[string]bool{
|
||||
"/": true,
|
||||
"/bin": true,
|
||||
"/boot": true,
|
||||
"/dev": true,
|
||||
"/etc": true,
|
||||
"/etc/passwd": true,
|
||||
"/etc/pki": true,
|
||||
"/etc/shadow": true,
|
||||
"/home": true,
|
||||
"/lib": true,
|
||||
"/lib64": true,
|
||||
"/media": true,
|
||||
"/opt": true,
|
||||
"/proc": true,
|
||||
"/root": true,
|
||||
"/run": true,
|
||||
"/sbin": true,
|
||||
"/srv": true,
|
||||
"/sys": true,
|
||||
"/tmp": true,
|
||||
"/usr": true,
|
||||
"/var": true,
|
||||
"/var/lib": true,
|
||||
"/var/log": true,
|
||||
}
|
||||
|
||||
if home := os.Getenv("HOME"); home != "" {
|
||||
exclude_paths[home] = true
|
||||
}
|
||||
|
||||
if sudoUser := os.Getenv("SUDO_USER"); sudoUser != "" {
|
||||
if usr, err := user.Lookup(sudoUser); err == nil {
|
||||
exclude_paths[usr.HomeDir] = true
|
||||
}
|
||||
}
|
||||
|
||||
if path != "/" {
|
||||
path = strings.TrimSuffix(path, "/")
|
||||
}
|
||||
if exclude_paths[path] {
|
||||
return fmt.Errorf("SELinux relabeling of %s is not allowed", path)
|
||||
}
|
||||
|
||||
if shared {
|
||||
c, err := selinux.NewContext(fileLabel)
|
||||
if err != nil {
|
||||
|
|
|
|||
1
vendor/github.com/opencontainers/selinux/go-selinux/label/label_stub.go
generated
vendored
1
vendor/github.com/opencontainers/selinux/go-selinux/label/label_stub.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build !linux
|
||||
// +build !linux
|
||||
|
||||
package label
|
||||
|
|
|
|||
12
vendor/github.com/opencontainers/selinux/go-selinux/rchcon.go
generated
vendored
12
vendor/github.com/opencontainers/selinux/go-selinux/rchcon.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build linux && go1.16
|
||||
// +build linux,go1.16
|
||||
|
||||
package selinux
|
||||
|
|
@ -11,7 +12,18 @@ import (
|
|||
)
|
||||
|
||||
func rchcon(fpath, label string) error {
|
||||
fastMode := false
|
||||
// If the current label matches the new label, assume
|
||||
// other labels are correct.
|
||||
if cLabel, err := lFileLabel(fpath); err == nil && cLabel == label {
|
||||
fastMode = true
|
||||
}
|
||||
return pwalkdir.Walk(fpath, func(p string, _ fs.DirEntry, _ error) error {
|
||||
if fastMode {
|
||||
if cLabel, err := lFileLabel(fpath); err == nil && cLabel == label {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
e := lSetFileLabel(p, label)
|
||||
// Walk a file tree can race with removal, so ignore ENOENT.
|
||||
if errors.Is(e, os.ErrNotExist) {
|
||||
|
|
|
|||
1
vendor/github.com/opencontainers/selinux/go-selinux/rchcon_go115.go
generated
vendored
1
vendor/github.com/opencontainers/selinux/go-selinux/rchcon_go115.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build linux && !go1.16
|
||||
// +build linux,!go1.16
|
||||
|
||||
package selinux
|
||||
|
|
|
|||
80
vendor/github.com/opencontainers/selinux/go-selinux/selinux_linux.go
generated
vendored
80
vendor/github.com/opencontainers/selinux/go-selinux/selinux_linux.go
generated
vendored
|
|
@ -11,6 +11,7 @@ import (
|
|||
"io/ioutil"
|
||||
"math/big"
|
||||
"os"
|
||||
"os/user"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
|
|
@ -1072,21 +1073,6 @@ func copyLevel(src, dest string) (string, error) {
|
|||
return tcon.Get(), nil
|
||||
}
|
||||
|
||||
// Prevent users from relabeling system files
|
||||
func badPrefix(fpath string) error {
|
||||
if fpath == "" {
|
||||
return ErrEmptyPath
|
||||
}
|
||||
|
||||
badPrefixes := []string{"/usr"}
|
||||
for _, prefix := range badPrefixes {
|
||||
if strings.HasPrefix(fpath, prefix) {
|
||||
return fmt.Errorf("relabeling content in %s is not allowed", prefix)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// chcon changes the fpath file object to the SELinux label label.
|
||||
// If fpath is a directory and recurse is true, then chcon walks the
|
||||
// directory tree setting the label.
|
||||
|
|
@ -1097,12 +1083,70 @@ func chcon(fpath string, label string, recurse bool) error {
|
|||
if label == "" {
|
||||
return nil
|
||||
}
|
||||
if err := badPrefix(fpath); err != nil {
|
||||
return err
|
||||
|
||||
exclude_paths := map[string]bool{
|
||||
"/": true,
|
||||
"/bin": true,
|
||||
"/boot": true,
|
||||
"/dev": true,
|
||||
"/etc": true,
|
||||
"/etc/passwd": true,
|
||||
"/etc/pki": true,
|
||||
"/etc/shadow": true,
|
||||
"/home": true,
|
||||
"/lib": true,
|
||||
"/lib64": true,
|
||||
"/media": true,
|
||||
"/opt": true,
|
||||
"/proc": true,
|
||||
"/root": true,
|
||||
"/run": true,
|
||||
"/sbin": true,
|
||||
"/srv": true,
|
||||
"/sys": true,
|
||||
"/tmp": true,
|
||||
"/usr": true,
|
||||
"/var": true,
|
||||
"/var/lib": true,
|
||||
"/var/log": true,
|
||||
}
|
||||
|
||||
if home := os.Getenv("HOME"); home != "" {
|
||||
exclude_paths[home] = true
|
||||
}
|
||||
|
||||
if sudoUser := os.Getenv("SUDO_USER"); sudoUser != "" {
|
||||
if usr, err := user.Lookup(sudoUser); err == nil {
|
||||
exclude_paths[usr.HomeDir] = true
|
||||
}
|
||||
}
|
||||
|
||||
if fpath != "/" {
|
||||
fpath = strings.TrimSuffix(fpath, "/")
|
||||
}
|
||||
if exclude_paths[fpath] {
|
||||
return fmt.Errorf("SELinux relabeling of %s is not allowed", fpath)
|
||||
}
|
||||
|
||||
if !recurse {
|
||||
return setFileLabel(fpath, label)
|
||||
err := lSetFileLabel(fpath, label)
|
||||
if err != nil {
|
||||
// Check if file doesn't exist, must have been removed
|
||||
if errors.Is(err, os.ErrNotExist) {
|
||||
return nil
|
||||
}
|
||||
// Check if current label is correct on disk
|
||||
flabel, nerr := lFileLabel(fpath)
|
||||
if nerr == nil && flabel == label {
|
||||
return nil
|
||||
}
|
||||
// Check if file doesn't exist, must have been removed
|
||||
if errors.Is(nerr, os.ErrNotExist) {
|
||||
return nil
|
||||
}
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
return rchcon(fpath, label)
|
||||
|
|
|
|||
1
vendor/github.com/opencontainers/selinux/go-selinux/selinux_stub.go
generated
vendored
1
vendor/github.com/opencontainers/selinux/go-selinux/selinux_stub.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build !linux
|
||||
// +build !linux
|
||||
|
||||
package selinux
|
||||
|
|
|
|||
4
vendor/modules.txt
vendored
4
vendor/modules.txt
vendored
|
|
@ -91,7 +91,7 @@ github.com/containernetworking/cni/pkg/version
|
|||
# github.com/containernetworking/plugins v1.1.1
|
||||
## explicit
|
||||
github.com/containernetworking/plugins/pkg/ns
|
||||
# github.com/containers/buildah v1.27.1
|
||||
# github.com/containers/buildah v1.27.3
|
||||
## explicit
|
||||
github.com/containers/buildah
|
||||
github.com/containers/buildah/bind
|
||||
|
|
@ -613,7 +613,7 @@ github.com/opencontainers/runtime-tools/generate
|
|||
github.com/opencontainers/runtime-tools/generate/seccomp
|
||||
github.com/opencontainers/runtime-tools/specerror
|
||||
github.com/opencontainers/runtime-tools/validate
|
||||
# github.com/opencontainers/selinux v1.10.1
|
||||
# github.com/opencontainers/selinux v1.10.2
|
||||
## explicit
|
||||
github.com/opencontainers/selinux/go-selinux
|
||||
github.com/opencontainers/selinux/go-selinux/label
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue