mirror of
https://github.com/containers/buildah.git
synced 2025-04-18 07:04:05 +03:00
Rename bud to build, while keeping an alias for to bud.
Signed-off-by: Kirill Shirinkin <kirill@hey.com>
This commit is contained in:
parent
afe00c31ff
commit
2d822034f8
@ -104,7 +104,7 @@ $ sudo ./lighttpd.sh
|
||||
| Command | Description |
|
||||
| ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
|
||||
| [buildah-add(1)](/docs/buildah-add.md) | Add the contents of a file, URL, or a directory to the container. |
|
||||
| [buildah-bud(1)](/docs/buildah-bud.md) | Build an image using instructions from Dockerfiles. |
|
||||
| [buildah-build(1)](/docs/buildah-build.md) | Build an image using instructions from Containerfiles or Dockerfiles. |
|
||||
| [buildah-commit(1)](/docs/buildah-commit.md) | Create an image from a working container. |
|
||||
| [buildah-config(1)](/docs/buildah-config.md) | Update image configuration settings. |
|
||||
| [buildah-containers(1)](/docs/buildah-containers.md) | List the working containers and their base images. |
|
||||
|
@ -245,7 +245,7 @@ func GetBuildInfo(b *Builder) BuilderInfo {
|
||||
}
|
||||
}
|
||||
|
||||
// CommonBuildOptions are resources that can be defined by flags for both buildah from and build-using-dockerfile
|
||||
// CommonBuildOptions are resources that can be defined by flags for both buildah from and build
|
||||
type CommonBuildOptions = define.CommonBuildOptions
|
||||
|
||||
// BuilderOptions are used to initialize a new Builder.
|
||||
|
@ -20,7 +20,7 @@ import (
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
type budOptions struct {
|
||||
type buildOptions struct {
|
||||
*buildahcli.LayerResults
|
||||
*buildahcli.BudResults
|
||||
*buildahcli.UserNSResults
|
||||
@ -29,7 +29,7 @@ type budOptions struct {
|
||||
}
|
||||
|
||||
func init() {
|
||||
budDescription := `
|
||||
buildDescription := `
|
||||
Builds an OCI image using instructions in one or more Containerfiles.
|
||||
|
||||
If no arguments are specified, Buildah will use the current working directory
|
||||
@ -37,53 +37,53 @@ func init() {
|
||||
Containerfile nor Dockerfile is present.`
|
||||
|
||||
layerFlagsResults := buildahcli.LayerResults{}
|
||||
budFlagResults := buildahcli.BudResults{}
|
||||
buildFlagResults := buildahcli.BudResults{}
|
||||
fromAndBudResults := buildahcli.FromAndBudResults{}
|
||||
userNSResults := buildahcli.UserNSResults{}
|
||||
namespaceResults := buildahcli.NameSpaceResults{}
|
||||
|
||||
budCommand := &cobra.Command{
|
||||
Use: "bud",
|
||||
Aliases: []string{"build-using-dockerfile"},
|
||||
buildCommand := &cobra.Command{
|
||||
Use: "build",
|
||||
Aliases: []string{"build-using-dockerfile", "bud"},
|
||||
Short: "Build an image using instructions in a Containerfile",
|
||||
Long: budDescription,
|
||||
Long: buildDescription,
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
br := budOptions{
|
||||
br := buildOptions{
|
||||
&layerFlagsResults,
|
||||
&budFlagResults,
|
||||
&buildFlagResults,
|
||||
&userNSResults,
|
||||
&fromAndBudResults,
|
||||
&namespaceResults,
|
||||
}
|
||||
return budCmd(cmd, args, br)
|
||||
return buildCmd(cmd, args, br)
|
||||
},
|
||||
Example: `buildah bud
|
||||
Example: `buildah build
|
||||
buildah bud -f Containerfile.simple .
|
||||
buildah bud --volume /home/test:/myvol:ro,Z -t imageName .
|
||||
buildah bud -f Containerfile.simple -f Containerfile.notsosimple .`,
|
||||
}
|
||||
budCommand.SetUsageTemplate(UsageTemplate())
|
||||
buildCommand.SetUsageTemplate(UsageTemplate())
|
||||
|
||||
flags := budCommand.Flags()
|
||||
flags := buildCommand.Flags()
|
||||
flags.SetInterspersed(false)
|
||||
|
||||
// BUD is a all common flags
|
||||
budFlags := buildahcli.GetBudFlags(&budFlagResults)
|
||||
budFlags.StringVar(&budFlagResults.Runtime, "runtime", util.Runtime(), "`path` to an alternate runtime. Use BUILDAH_RUNTIME environment variable to override.")
|
||||
// build is a all common flags
|
||||
buildFlags := buildahcli.GetBudFlags(&buildFlagResults)
|
||||
buildFlags.StringVar(&buildFlagResults.Runtime, "runtime", util.Runtime(), "`path` to an alternate runtime. Use BUILDAH_RUNTIME environment variable to override.")
|
||||
|
||||
layerFlags := buildahcli.GetLayerFlags(&layerFlagsResults)
|
||||
fromAndBudFlags, err := buildahcli.GetFromAndBudFlags(&fromAndBudResults, &userNSResults, &namespaceResults)
|
||||
if err != nil {
|
||||
logrus.Errorf("failed to setup From and Bud flags: %v", err)
|
||||
logrus.Errorf("failed to setup From and Build flags: %v", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
flags.AddFlagSet(&budFlags)
|
||||
flags.AddFlagSet(&buildFlags)
|
||||
flags.AddFlagSet(&layerFlags)
|
||||
flags.AddFlagSet(&fromAndBudFlags)
|
||||
flags.SetNormalizeFunc(buildahcli.AliasFlags)
|
||||
|
||||
rootCmd.AddCommand(budCommand)
|
||||
rootCmd.AddCommand(buildCommand)
|
||||
}
|
||||
|
||||
func getContainerfiles(files []string) []string {
|
||||
@ -98,7 +98,7 @@ func getContainerfiles(files []string) []string {
|
||||
return containerfiles
|
||||
}
|
||||
|
||||
func budCmd(c *cobra.Command, inputArgs []string, iopts budOptions) error {
|
||||
func buildCmd(c *cobra.Command, inputArgs []string, iopts buildOptions) error {
|
||||
output := ""
|
||||
tags := []string{}
|
||||
if c.Flag("tag").Changed {
|
@ -1184,7 +1184,7 @@ esac
|
||||
local commands=(
|
||||
add
|
||||
bud
|
||||
build-using-dockerfile
|
||||
build
|
||||
commit
|
||||
config
|
||||
containers
|
||||
|
@ -10,7 +10,7 @@ import (
|
||||
"golang.org/x/sync/semaphore"
|
||||
)
|
||||
|
||||
// CommonBuildOptions are resources that can be defined by flags for both buildah from and build-using-dockerfile
|
||||
// CommonBuildOptions are resources that can be defined by flags for both buildah from and build
|
||||
type CommonBuildOptions struct {
|
||||
// AddHost is the list of hostnames to add to the build container's /etc/hosts.
|
||||
AddHost []string
|
||||
|
@ -6,8 +6,8 @@
|
||||
|
||||
* Integration into Kubernetes and potentially other tools. The biggest requirement for this is to be able run Buildah within a standard linux container without SYS_ADMIN privileges. This would allow Buildah to run non-privileged containers inside of Kubernetes, so you could distribute your container workloads.
|
||||
|
||||
* Integration with User Namespace, Podman has this already and the goal is to get `buildah bud` and `buildah run` to be able to run its containers in a usernamespace to give the builder better security isolation from the host.
|
||||
* Integration with User Namespace, Podman has this already and the goal is to get `buildah build` and `buildah run` to be able to run its containers in a usernamespace to give the builder better security isolation from the host.
|
||||
|
||||
* Buildah `buildah bud` command's goal is to have feature parity with other OCI image and container build systems.
|
||||
* Buildah `buildah build` command's goal is to have feature parity with other OCI image and container build systems.
|
||||
|
||||
* Addressing issues from the community as reported in the [Issues](https://github.com/containers/buildah/issues) page.
|
||||
|
@ -12,6 +12,7 @@ docs: $(patsubst %.md,%.1,$(wildcard *.md))
|
||||
install:
|
||||
install -d ${DESTDIR}/${MANDIR}/man1
|
||||
install -m 0644 buildah*.1 ${DESTDIR}/${MANDIR}/man1
|
||||
install -m 0644 links/buildah*.1 ${DESTDIR}/${MANDIR}/man1
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
|
@ -1,15 +1,17 @@
|
||||
# buildah-bud "1" "April 2017" "buildah"
|
||||
# buildah-build "1" "April 2017" "buildah"
|
||||
|
||||
## NAME
|
||||
buildah\-bud - Build an image using instructions from Containerfiles
|
||||
buildah\-build - Build an image using instructions from Containerfiles
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
**buildah build-using-dockerfile** [*options*] [*context*]
|
||||
**buildah build** [*options*] [*context*]
|
||||
|
||||
**buildah bud** [*options*] [*context*]
|
||||
|
||||
**bud** is an alias for **build-using-dockerfile**.
|
||||
**buildah build-using-dockerfile** [*options*] [*context*]
|
||||
|
||||
**build** has aliases **bud** and **build-using-dockerfile**.
|
||||
|
||||
## DESCRIPTION
|
||||
Builds an image using instructions from one or more Containerfiles or Dockerfiles and a specified
|
||||
@ -479,7 +481,7 @@ Adds global flags for the container rutime. To list the supported flags, please
|
||||
consult the manpages of the selected container runtime.
|
||||
|
||||
Note: Do not pass the leading `--` to the flag. To pass the runc flag `--log-format json`
|
||||
to buildah bud, the option given would be `--runtime-flag log-format=json`.
|
||||
to buildah build, the option given would be `--runtime-flag log-format=json`.
|
||||
|
||||
**--secret**=**id=id,src=path**
|
||||
|
||||
@ -749,59 +751,59 @@ Please refer to the [Using Build Time Variables](#using-build-time-variables) se
|
||||
|
||||
### Build an image using local Containerfiles
|
||||
|
||||
buildah bud .
|
||||
buildah build .
|
||||
|
||||
buildah bud -f Containerfile .
|
||||
buildah build -f Containerfile .
|
||||
|
||||
cat ~/Dockerfile | buildah bud -f - .
|
||||
cat ~/Dockerfile | buildah build -f - .
|
||||
|
||||
buildah bud -f Dockerfile.simple -f Dockerfile.notsosimple .
|
||||
buildah build -f Dockerfile.simple -f Dockerfile.notsosimple .
|
||||
|
||||
buildah bud --timestamp=$(date '+%s') -t imageName .
|
||||
buildah build --timestamp=$(date '+%s') -t imageName .
|
||||
|
||||
buildah bud -t imageName .
|
||||
buildah build -t imageName .
|
||||
|
||||
buildah bud --tls-verify=true -t imageName -f Dockerfile.simple .
|
||||
buildah build --tls-verify=true -t imageName -f Dockerfile.simple .
|
||||
|
||||
buildah bud --tls-verify=false -t imageName .
|
||||
buildah build --tls-verify=false -t imageName .
|
||||
|
||||
buildah bud --runtime-flag log-format=json .
|
||||
buildah build --runtime-flag log-format=json .
|
||||
|
||||
buildah bud -f Containerfile --runtime-flag debug .
|
||||
buildah build -f Containerfile --runtime-flag debug .
|
||||
|
||||
buildah bud --authfile /tmp/auths/myauths.json --cert-dir ~/auth --tls-verify=true --creds=username:password -t imageName -f Dockerfile.simple .
|
||||
buildah build --authfile /tmp/auths/myauths.json --cert-dir ~/auth --tls-verify=true --creds=username:password -t imageName -f Dockerfile.simple .
|
||||
|
||||
buildah bud --memory 40m --cpu-period 10000 --cpu-quota 50000 --ulimit nofile=1024:1028 -t imageName .
|
||||
buildah build --memory 40m --cpu-period 10000 --cpu-quota 50000 --ulimit nofile=1024:1028 -t imageName .
|
||||
|
||||
buildah bud --security-opt label=level:s0:c100,c200 --cgroup-parent /path/to/cgroup/parent -t imageName .
|
||||
buildah build --security-opt label=level:s0:c100,c200 --cgroup-parent /path/to/cgroup/parent -t imageName .
|
||||
|
||||
buildah bud --arch=arm --variant v7 -t imageName .
|
||||
buildah build --arch=arm --variant v7 -t imageName .
|
||||
|
||||
buildah bud --volume /home/test:/myvol:ro,Z -t imageName .
|
||||
buildah build --volume /home/test:/myvol:ro,Z -t imageName .
|
||||
|
||||
buildah bud -v /home/test:/myvol:z,U -t imageName .
|
||||
buildah build -v /home/test:/myvol:z,U -t imageName .
|
||||
|
||||
buildah bud -v /var/lib/dnf:/var/lib/dnf:O -t imageName .
|
||||
buildah build -v /var/lib/dnf:/var/lib/dnf:O -t imageName .
|
||||
|
||||
buildah bud --layers -t imageName .
|
||||
buildah build --layers -t imageName .
|
||||
|
||||
buildah bud --no-cache -t imageName .
|
||||
buildah build --no-cache -t imageName .
|
||||
|
||||
buildah bud -f Containerfile --layers --force-rm -t imageName .
|
||||
buildah build -f Containerfile --layers --force-rm -t imageName .
|
||||
|
||||
buildah bud --no-cache --rm=false -t imageName .
|
||||
buildah build --no-cache --rm=false -t imageName .
|
||||
|
||||
buildah bud --dns-search=example.com --dns=223.5.5.5 --dns-option=use-vc .
|
||||
buildah build --dns-search=example.com --dns=223.5.5.5 --dns-option=use-vc .
|
||||
|
||||
buildah bud -f Containerfile.in -t imageName .
|
||||
buildah build -f Containerfile.in -t imageName .
|
||||
|
||||
### Building an multi-architecture image using the --manifest option (requires emulation software)
|
||||
|
||||
buildah bud --arch arm --manifest myimage /tmp/mysrc
|
||||
buildah build --arch arm --manifest myimage /tmp/mysrc
|
||||
|
||||
buildah bud --arch amd64 --manifest myimage /tmp/mysrc
|
||||
buildah build --arch amd64 --manifest myimage /tmp/mysrc
|
||||
|
||||
buildah bud --arch s390x --manifest myimage /tmp/mysrc
|
||||
buildah build --arch s390x --manifest myimage /tmp/mysrc
|
||||
|
||||
buildah bud --platform linux/s390x,linux/ppc64le,linux/amd64 --manifest myimage /tmp/mysrc
|
||||
|
||||
@ -811,21 +813,21 @@ buildah bud --platform linux/arm64 --platform linux/amd64 --manifest myimage /tm
|
||||
|
||||
This will clone the specified GitHub repository from the URL and use it as context. The Containerfile or Dockerfile at the root of the repository is used as the context of the build. This only works if the GitHub repository is a dedicated repository.
|
||||
|
||||
buildah bud github.com/scollier/purpletest
|
||||
buildah build github.com/scollier/purpletest
|
||||
|
||||
Note: You can set an arbitrary Git repository via the git:// scheme.
|
||||
|
||||
### Building an image using a URL to a tarball'ed context
|
||||
Buildah will fetch the tarball archive, decompress it and use its contents as the build context. The Containerfile or Dockerfile at the root of the archive and the rest of the archive will get used as the context of the build. If you pass an -f PATH/Containerfile option as well, the system will look for that file inside the contents of the tarball.
|
||||
|
||||
buildah bud -f dev/Containerfile https://10.10.10.1/docker/context.tar.gz
|
||||
buildah build -f dev/Containerfile https://10.10.10.1/docker/context.tar.gz
|
||||
|
||||
Note: supported compression formats are 'xz', 'bzip2', 'gzip' and 'identity' (no compression).
|
||||
|
||||
### Using Build Time Variables
|
||||
#### Replace the value set for the HTTP_PROXY environment variable within the Containerfile.
|
||||
|
||||
buildah bud --build-arg=HTTP_PROXY="http://127.0.0.1:8321"
|
||||
buildah build --build-arg=HTTP_PROXY="http://127.0.0.1:8321"
|
||||
|
||||
## ENVIRONMENT
|
||||
|
||||
@ -849,7 +851,7 @@ are stored while pulling and pushing images. Defaults to '/var/tmp'.
|
||||
### `.containerignore`/`.dockerignore`
|
||||
|
||||
If the .containerignore/.dockerignore file exists in the context directory,
|
||||
`buildah bud` reads its contents. If both exist, then .containerignore is used.
|
||||
`buildah build` reads its contents. If both exist, then .containerignore is used.
|
||||
Use the `--ignorefile` flag to override the ignore file path location. Buildah uses the content to exclude files and directories from the context directory, when executing COPY and ADD directives in the Containerfile/Dockerfile
|
||||
|
||||
Users can specify a series of Unix shell globals in a
|
@ -139,7 +139,7 @@ Buildah can set up environment variables from the env entry in the [engine] tabl
|
||||
| Command | Description |
|
||||
| --------------------- | --------------------------------------------------- |
|
||||
| buildah-add(1) | Add the contents of a file, URL, or a directory to the container. |
|
||||
| buildah-bud(1) | Build an image using instructions from Dockerfiles. |
|
||||
| buildah-build(1) | Build an image using instructions from Dockerfiles. |
|
||||
| buildah-commit(1) | Create an image from a working container. |
|
||||
| buildah-config(1) | Update image configuration settings. |
|
||||
| buildah-containers(1) | List the working containers and their base images. |
|
||||
|
@ -1,5 +1,5 @@
|
||||
When [buildah](https://github.com/containers/buildah)'s `buildah run`
|
||||
command is used, or when `buildah build-using-dockerfile` needs to handle a
|
||||
command is used, or when `buildah build` needs to handle a
|
||||
`RUN` instruction, the processes which `buildah` starts are run in their own
|
||||
network namespace unless the `--network=host` option is used.
|
||||
|
||||
|
@ -85,7 +85,7 @@ familiar container cli commands.
|
||||
Some of the commands between the projects overlap:
|
||||
|
||||
* build
|
||||
The `podman build` and `buildah bud` commands have significant overlap as Podman borrows large pieces of the `podman build` implementation from Buildah.
|
||||
The `podman build` and `buildah build` commands have significant overlap as Podman borrows large pieces of the `podman build` implementation from Buildah.
|
||||
|
||||
* run
|
||||
The `buildah run` and `podman run` commands are similar but different. As explained above Podman and Buildah have a different concept of a container. An easy way to think of it is the `buildah run` command emulates the RUN command in a Dockerfile while the `podman run` command emulates the `docker run` command in functionality. As Buildah and Podman have somewhat different concepts of containers, you can not see Podman containers from within Buildah or vice versa.
|
||||
|
1
docs/links/buildah-bud.1
Normal file
1
docs/links/buildah-bud.1
Normal file
@ -0,0 +1 @@
|
||||
.so man1/buildah-build.1
|
@ -234,9 +234,9 @@ OCI container images built with `buildah` are completely standard as expected. S
|
||||
|
||||
# dnf -y remove docker
|
||||
|
||||
## Using Dockerfiles with Buildah
|
||||
## Using Containerfiles/Dockerfiles with Buildah
|
||||
|
||||
What if you have been using Docker for a while and have some existing Dockerfiles. Not a problem. Buildah can build images using a Dockerfile. The `build-using-dockerfile`, or `bud` for short, takes a Dockerfile as input and produces an OCI image.
|
||||
What if you have been using Docker for a while and have some existing Dockerfiles. Not a problem. Buildah can build images using a Dockerfile. The `build` command takes a Dockerfile as input and produces an OCI image.
|
||||
|
||||
Find one of your Dockerfiles or create a file called Dockerfile. Use the following example or some variation if you'd like:
|
||||
|
||||
@ -254,13 +254,13 @@ Find one of your Dockerfiles or create a file called Dockerfile. Use the followi
|
||||
# Run the httpd
|
||||
CMD ["/usr/sbin/httpd", "-DFOREGROUND"]
|
||||
|
||||
Now run `buildah bud` with the name of the Dockerfile and the name to be given to the created image (e.g. fedora-httpd):
|
||||
Now run `buildah build` with the name of the Dockerfile and the name to be given to the created image (e.g. fedora-httpd):
|
||||
|
||||
# buildah bud -f Dockerfile -t fedora-httpd .
|
||||
# buildah build -f Dockerfile -t fedora-httpd .
|
||||
|
||||
or, because `buildah bud` defaults to Dockerfile (note the period at the end of the example):
|
||||
or, because `buildah build` defaults to Dockerfile (note the period at the end of the example):
|
||||
|
||||
# buildah bud -t fedora-httpd .
|
||||
# buildah build -t fedora-httpd .
|
||||
|
||||
You will see all the steps of the Dockerfile executing. Afterwards `buildah images` will show you the new image. Now we need to create the container using `buildah from` and test it with `buildah run`:
|
||||
|
||||
|
@ -57,7 +57,7 @@ EOF
|
||||
Now to create the first container and verify that ONBUILD has been set:
|
||||
|
||||
```
|
||||
# buildah bud --format=docker -f Dockerfile -t onbuild-image .
|
||||
# buildah build --format=docker -f Dockerfile -t onbuild-image .
|
||||
# buildah inspect --format '{{.Docker.Config.OnBuild}}' onbuild-image
|
||||
[RUN touch /bar]
|
||||
```
|
||||
@ -65,7 +65,7 @@ Now to create the first container and verify that ONBUILD has been set:
|
||||
The second container is now created and the `/bar` file will be created within it:
|
||||
|
||||
```
|
||||
# buildah bud --format=docker -f Dockerfile-2 -t result-image .
|
||||
# buildah build --format=docker -f Dockerfile-2 -t result-image .
|
||||
STEP 1: FROM onbuild-image
|
||||
STEP 2: RUN touch /bar # Note /bar created here based on the ONBUILD in Dockerfile
|
||||
STEP 3: RUN touch /baz
|
||||
@ -94,7 +94,7 @@ First a Fedora container will be created with `buildah from`, then the `/foo` fi
|
||||
The onbuild-image has been created, so now create a container from it using the same commands as the first example using the second Dockerfile:
|
||||
|
||||
```
|
||||
# buildah bud --format=docker -f Dockerfile-2 -t result-image .
|
||||
# buildah build --format=docker -f Dockerfile-2 -t result-image .
|
||||
STEP 1: FROM onbuild-image
|
||||
STEP 2: RUN touch /bar # Note /bar created here based on the ONBUILD in Dockerfile
|
||||
STEP 3: RUN touch /baz
|
||||
|
@ -284,7 +284,7 @@ sh-5.0$ mkdir output
|
||||
And finally build the image, testing that everything works as expected:
|
||||
|
||||
````console
|
||||
sh-5.0$ buildah -v /home/build/output:/output:rw -v /home/build/test-script.sh:/test-script.sh:ro bud -t myimage -f Containerfile.test
|
||||
sh-5.0$ buildah -v /home/build/output:/output:rw -v /home/build/test-script.sh:/test-script.sh:ro build -t myimage -f Containerfile.test
|
||||
STEP 1: FROM fedora:33
|
||||
Getting image source signatures
|
||||
Copying blob 453ed60def9c done
|
@ -20,7 +20,7 @@ Learn how Buildah can use the ONBUILD instruction in either a Dockerfile or via
|
||||
|
||||
Learn how to include Buildah as a library in your build tool.
|
||||
|
||||
**[Rootless OpenShift container](05-openshift-rootless-bud.md)**
|
||||
**[Rootless OpenShift container](05-openshift-rootless-build.md)**
|
||||
|
||||
Learn how to build an image from a rootless OpenShift container.
|
||||
|
||||
|
@ -157,7 +157,7 @@ On other Linux distributions Buildah requires a kernel version that supports the
|
||||
|
||||
### runc Requirement
|
||||
|
||||
Buildah uses `runc` to run commands when `buildah run` is used, or when `buildah build-using-dockerfile`
|
||||
Buildah uses `runc` to run commands when `buildah run` is used, or when `buildah build`
|
||||
encounters a `RUN` instruction, so you'll also need to build and install a compatible version of
|
||||
[runc](https://github.com/opencontainers/runc) for Buildah to call for those cases. If Buildah is installed
|
||||
via a package manager such as yum, dnf or apt-get, runc will be installed as part of that process.
|
||||
@ -396,7 +396,7 @@ registries = []
|
||||
|
||||
`/usr/share/containers/mounts.conf` and optionally `/etc/containers/mounts.conf`
|
||||
|
||||
The mounts.conf files specify volume mount files or directories that are automatically mounted inside containers when executing the `buildah run` or `buildah build-using-dockerfile` commands. Container processes can then use this content. The volume mount content does not get committed to the final image. This file is usually provided by the containers-common package.
|
||||
The mounts.conf files specify volume mount files or directories that are automatically mounted inside containers when executing the `buildah run` or `buildah build` commands. Container processes can then use this content. The volume mount content does not get committed to the final image. This file is usually provided by the containers-common package.
|
||||
|
||||
Usually these directories are used for passing secrets or credentials required by the package software to access remote package repositories.
|
||||
|
||||
|
@ -46,7 +46,7 @@ type NameSpaceResults struct {
|
||||
UTS string
|
||||
}
|
||||
|
||||
// BudResults represents the results for Bud flags
|
||||
// BudResults represents the results for Build flags
|
||||
type BudResults struct {
|
||||
Annotation []string
|
||||
Authfile string
|
||||
@ -89,7 +89,7 @@ type BudResults struct {
|
||||
}
|
||||
|
||||
// FromAndBugResults represents the results for common flags
|
||||
// in bud and from
|
||||
// in build and from
|
||||
type FromAndBudResults struct {
|
||||
AddHost []string
|
||||
BlobCache string
|
||||
@ -172,7 +172,7 @@ func GetLayerFlags(flags *LayerResults) pflag.FlagSet {
|
||||
|
||||
// Note: GetLayerFlagsCompletion is not needed since GetLayerFlags only contains bool flags
|
||||
|
||||
// GetBudFlags returns common bud flags
|
||||
// GetBudFlags returns common build flags
|
||||
func GetBudFlags(flags *BudResults) pflag.FlagSet {
|
||||
fs := pflag.FlagSet{}
|
||||
fs.String("arch", runtime.GOARCH, "set the ARCH of the image to the provided value instead of the architecture of the host")
|
||||
@ -213,7 +213,7 @@ func GetBudFlags(flags *BudResults) pflag.FlagSet {
|
||||
fs.BoolVar(&flags.PullNever, "pull-never", false, "do not pull the image, use the image present in store if available")
|
||||
fs.BoolVarP(&flags.Quiet, "quiet", "q", false, "refrain from announcing build instructions and image read/write progress")
|
||||
fs.BoolVar(&flags.Rm, "rm", true, "Remove intermediate containers after a successful build")
|
||||
// "runtime" definition moved to avoid name collision in podman build. Defined in cmd/buildah/bud.go.
|
||||
// "runtime" definition moved to avoid name collision in podman build. Defined in cmd/buildah/build.go.
|
||||
fs.StringSliceVar(&flags.RuntimeFlags, "runtime-flag", []string{}, "add global flags for the container runtime")
|
||||
fs.StringArrayVar(&flags.Secrets, "secret", []string{}, "secret file to expose to the build")
|
||||
fs.StringVar(&flags.SignBy, "sign-by", "", "sign the image using a GPG key with the specified `FINGERPRINT`")
|
||||
@ -232,7 +232,7 @@ func GetBudFlags(flags *BudResults) pflag.FlagSet {
|
||||
return fs
|
||||
}
|
||||
|
||||
// GetBudFlagsCompletions returns the FlagCompletions for the common bud flags
|
||||
// GetBudFlagsCompletions returns the FlagCompletions for the common build flags
|
||||
func GetBudFlagsCompletions() commonComp.FlagCompletions {
|
||||
flagCompletion := commonComp.FlagCompletions{}
|
||||
flagCompletion["arch"] = commonComp.AutocompleteNone
|
||||
@ -264,7 +264,7 @@ func GetBudFlagsCompletions() commonComp.FlagCompletions {
|
||||
return flagCompletion
|
||||
}
|
||||
|
||||
// GetFromAndBudFlags returns from and bud flags
|
||||
// GetFromAndBudFlags returns from and build flags
|
||||
func GetFromAndBudFlags(flags *FromAndBudResults, usernsResults *UserNSResults, namespaceResults *NameSpaceResults) (pflag.FlagSet, error) {
|
||||
fs := pflag.FlagSet{}
|
||||
defaultContainerConfig, err := config.Default()
|
||||
@ -312,7 +312,7 @@ func GetFromAndBudFlags(flags *FromAndBudResults, usernsResults *UserNSResults,
|
||||
return fs, nil
|
||||
}
|
||||
|
||||
// GetFromAndBudFlagsCompletions returns the FlagCompletions for the from and bud flags
|
||||
// GetFromAndBudFlagsCompletions returns the FlagCompletions for the from and build flags
|
||||
func GetFromAndBudFlagsCompletions() commonComp.FlagCompletions {
|
||||
flagCompletion := commonComp.FlagCompletions{}
|
||||
flagCompletion["arch"] = commonComp.AutocompleteNone
|
||||
|
@ -48,7 +48,7 @@ func TestBudFlagsCompletion(t *testing.T) {
|
||||
func TestFromAndBudFlagsCompletions(t *testing.T) {
|
||||
flags, err := GetFromAndBudFlags(&FromAndBudResults{}, &UserNSResults{}, &NameSpaceResults{})
|
||||
if err != nil {
|
||||
t.Error("Could load the from and bud flags.")
|
||||
t.Error("Could load the from and build flags.")
|
||||
}
|
||||
flagCompletions := GetFromAndBudFlagsCompletions()
|
||||
testFlagCompletion(t, flags, flagCompletions)
|
||||
|
658
tests/bud.bats
658
tests/bud.bats
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@
|
||||
---
|
||||
### 1) No such image
|
||||
|
||||
When doing a `buildah pull` or `buildah bud` command and a "common" image can not be pulled,
|
||||
When doing a `buildah pull` or `buildah build` command and a "common" image can not be pulled,
|
||||
it is likely that the `/etc/containers/registries.conf` file is either not installed or possibly
|
||||
misconfigured. This issue might also indicate that other required files as listed in the
|
||||
[Configuration Files](https://github.com/containers/buildah/blob/main/install.md#configuration-files)
|
||||
@ -15,7 +15,7 @@ section of the Installation Instructions are also not installed.
|
||||
|
||||
#### Symptom
|
||||
```console
|
||||
$ sudo buildah bud -f Dockerfile .
|
||||
$ sudo buildah build -f Dockerfile .
|
||||
STEP 1: FROM alpine
|
||||
error creating build container: 2 errors occurred:
|
||||
|
||||
@ -35,7 +35,7 @@ error building: error creating build container: no such image "alpine" in regist
|
||||
---
|
||||
### 2) http: server gave HTTP response to HTTPS client
|
||||
|
||||
When doing a Buildah command such as `bud`, `commit`, `from`, or `push` to a registry,
|
||||
When doing a Buildah command such as `build`, `commit`, `from`, or `push` to a registry,
|
||||
tls verification is turned on by default. If authentication is not used with
|
||||
those commands, this error can occur.
|
||||
|
||||
@ -50,7 +50,7 @@ Get https://localhost:5000/v2/: http: server gave HTTP response to HTTPS client
|
||||
|
||||
By default tls verification is turned on when communicating to registries from
|
||||
Buildah. If the registry does not require authentication the Buildah commands
|
||||
such as `bud`, `commit`, `from` and `pull` will fail unless tls verification is turned
|
||||
such as `build`, `commit`, `from` and `pull` will fail unless tls verification is turned
|
||||
off using the `--tls-verify` option. **NOTE:** It is not at all recommended to
|
||||
communicate with a registry and not use tls verification.
|
||||
|
||||
@ -110,13 +110,13 @@ lstat /home/myusername/~: no such file or directory
|
||||
|
||||
|
||||
---
|
||||
### 5) Rootless buildah bud fails EPERM on NFS:
|
||||
### 5) Rootless buildah build fails EPERM on NFS:
|
||||
|
||||
NFS enforces file creation on different UIDs on the server side and does not understand user namespace, which rootless Podman requires. When a container root process like YUM attempts to create a file owned by a different UID, NFS Server denies the creation. NFS is also a problem for the file locks when the storage is on it. Other distributed file systems (for example: Lustre, Spectrum Scale, the General Parallel File System (GPFS)) are also not supported when running in rootless mode as these file systems do not understand user namespace.
|
||||
|
||||
#### Symptom
|
||||
```console
|
||||
$ buildah bud .
|
||||
$ buildah build .
|
||||
ERRO[0014] Error while applying layer: ApplyLayer exit status 1 stdout: stderr: open /root/.bash_logout: permission denied
|
||||
error creating build container: Error committing the finished image: error adding layer with blob "sha256:a02a4930cb5d36f3290eb84f4bfa30668ef2e9fe3a1fb73ec015fc58b9958b17": ApplyLayer exit status 1 stdout: stderr: open /root/.bash_logout: permission denied
|
||||
```
|
||||
@ -126,14 +126,14 @@ Choose one of the following:
|
||||
* Setup containers/storage in a different directory, not on an NFS share.
|
||||
* Otherwise just run buildah as root, via `sudo buildah`
|
||||
---
|
||||
### 6) Rootless buildah bud fails when using OverlayFS:
|
||||
### 6) Rootless buildah build fails when using OverlayFS:
|
||||
|
||||
The Overlay file system (OverlayFS) requires the ability to call the `mknod` command when creating whiteout files
|
||||
when extracting an image. However, a rootless user does not have the privileges to use `mknod` in this capacity.
|
||||
|
||||
#### Symptom
|
||||
```console
|
||||
buildah bud --storage-driver overlay .
|
||||
buildah build --storage-driver overlay .
|
||||
STEP 1: FROM docker.io/ubuntu:xenial
|
||||
Getting image source signatures
|
||||
Copying blob edf72af6d627 done
|
||||
@ -144,7 +144,7 @@ Copying config 5e13f8dd4c done
|
||||
Writing manifest to image destination
|
||||
Storing signatures
|
||||
Error: error creating build container: Error committing the finished image: error adding layer with blob "sha256:8d3eac894db4dc4154377ad28643dfe6625ff0e54bcfa63e0d04921f1a8ef7f8": Error processing tar file(exit status 1): operation not permitted
|
||||
$ buildah bud .
|
||||
$ buildah build .
|
||||
ERRO[0014] Error while applying layer: ApplyLayer exit status 1 stdout: stderr: open /root/.bash_logout: permission denied
|
||||
error creating build container: Error committing the finished image: error adding layer with blob "sha256:a02a4930cb5d36f3290eb84f4bfa30668ef2e9fe3a1fb73ec015fc58b9958b17": ApplyLayer exit status 1 stdout: stderr: open /root/.bash_logout: permission denied
|
||||
```
|
||||
|
Loading…
x
Reference in New Issue
Block a user