Add authfile, cert-dir and creds params to build

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>

Closes: #280
Approved by: mheon
This commit is contained in:
TomSweeneyRedHat
2018-01-31 18:16:50 -05:00
committed by Atomic Bot
parent 2dfd048545
commit 03cfe5ebbe
3 changed files with 53 additions and 6 deletions

View File

@ -11,10 +11,24 @@ import (
var (
buildFlags = []cli.Flag{
cli.StringFlag{
Name: "authfile",
Usage: "path of the authentication file. Default is ${XDG_RUNTIME_DIR}/containers/auth.json",
},
cli.StringSliceFlag{
Name: "build-arg",
Usage: "`argument=value` to supply to the builder",
},
cli.StringFlag{
Name: "cert-dir",
Value: "",
Usage: "use certificates at the specified path to access the registry",
},
cli.StringFlag{
Name: "creds",
Value: "",
Usage: "use `[username[:password]]` for accessing the registry",
},
cli.StringSliceFlag{
Name: "file, f",
Usage: "`pathname or URL` of a Dockerfile",
@ -68,9 +82,18 @@ func buildCmd(c *cli.Context) error {
budCmdArgs := []string{"bud"}
if c.IsSet("authfile") {
budCmdArgs = append(budCmdArgs, "--authfile", c.String("authfile"))
}
for _, buildArg := range c.StringSlice("build-arg") {
budCmdArgs = append(budCmdArgs, "--build-arg", buildArg)
}
if c.IsSet("cert-dir") {
budCmdArgs = append(budCmdArgs, "--cert-dir", c.String("cert-dir"))
}
if c.IsSet("creds") {
budCmdArgs = append(budCmdArgs, "--creds", c.String("creds"))
}
for _, fileName := range c.StringSlice("file") {
budCmdArgs = append(budCmdArgs, "--file", fileName)
}

View File

@ -700,15 +700,18 @@ _podman_build() {
"
local options_with_args="
--signature-policy
--runtime
--runtime-flag
--tag
-t
--authfile
--build-arg
--cert-dir
--creds
--file
-f
--build-arg
--format
--runtime
--runtime-flag
--signature-policy
--tag
-t
"
local all_options="$options_with_args $boolean_options"

View File

@ -24,6 +24,11 @@ to do the actual building.
## OPTIONS
**--authfile** *path*
Path of the authentication file. Default is ${XDG_RUNTIME\_DIR}/containers/auth.json, which is set using `podman login`.
If the authorization state is not found there, $HOME/.docker/config.json is checked, which is set using `docker login`.
**--build-arg** *arg=value*
Specifies a build argument and its value, which will be interpolated in
@ -31,6 +36,16 @@ instructions read from the Dockerfiles in the same way that environment
variables are, but which will not be added to environment variable list in the
resulting image's configuration.
**--cert-dir** *path*
Use certificates at *path* (*.crt, *.cert, *.key) to connect to the registry
**--creds** *creds*
The [username[:password]] to use to authenticate with the registry if required.
If one or both values are not supplied, a command line prompt will appear and the
value can be entered. The password is entered without echo.
**-f, --file** *Dockerfile*
Specifies a Dockerfile which contains instructions for building the image,
@ -96,6 +111,12 @@ podman build --tls-verify=true -t imageName -f Dockerfile.simple
podman build --tls-verify=false -t imageName .
podman bud --runtime-flag log-format=json .
podman bud --runtime-flag debug .
podman bud --authfile /tmp/auths/myauths.json --cert-dir ~/auth --tls-verify=true --creds=username:password -t imageName -f Dockerfile.simple
## SEE ALSO
podman(1), buildah(1)