mirror of
https://github.com/containers/skopeo.git
synced 2025-06-26 06:42:21 +00:00
Merge pull request #829 from rhatdan/REGISTRY_AUTH_FILE
add support for REGISTRY_AUTH_FILE
This commit is contained in:
commit
a7ff66f09e
@ -3,6 +3,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"io"
|
"io"
|
||||||
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/containers/image/v5/pkg/compression"
|
"github.com/containers/image/v5/pkg/compression"
|
||||||
@ -44,7 +45,8 @@ func sharedImageFlags() ([]cli.Flag, *sharedImageOptions) {
|
|||||||
return []cli.Flag{
|
return []cli.Flag{
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "authfile",
|
Name: "authfile",
|
||||||
Usage: "path of the authentication file. Default is ${XDG_RUNTIME_DIR}/containers/auth.json",
|
Usage: "path of the authentication file. Example: ${XDG_RUNTIME_DIR}/containers/auth.json",
|
||||||
|
Value: os.Getenv("REGISTRY_AUTH_FILE"),
|
||||||
Destination: &opts.authFilePath,
|
Destination: &opts.authFilePath,
|
||||||
},
|
},
|
||||||
}, &opts
|
}, &opts
|
||||||
@ -94,7 +96,7 @@ func dockerImageFlags(global *globalOptions, shared *sharedImageOptions, flagPre
|
|||||||
flags = append(flags,
|
flags = append(flags,
|
||||||
cli.GenericFlag{
|
cli.GenericFlag{
|
||||||
Name: flagPrefix + "authfile",
|
Name: flagPrefix + "authfile",
|
||||||
Usage: "path of the authentication file. Default is ${XDG_RUNTIME_DIR}/containers/auth.json",
|
Usage: "path of the authentication file. Example: ${XDG_RUNTIME_DIR}/containers/auth.json",
|
||||||
Value: newOptionalStringValue(&opts.authFilePath),
|
Value: newOptionalStringValue(&opts.authFilePath),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
@ -2,6 +2,7 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/containers/image/v5/types"
|
"github.com/containers/image/v5/types"
|
||||||
@ -137,13 +138,25 @@ func TestImageDestOptionsNewSystemContext(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, &types.SystemContext{}, res)
|
assert.Equal(t, &types.SystemContext{}, res)
|
||||||
|
|
||||||
|
oldXRD, hasXRD := os.LookupEnv("REGISTRY_AUTH_FILE")
|
||||||
|
defer func() {
|
||||||
|
if hasXRD {
|
||||||
|
os.Setenv("REGISTRY_AUTH_FILE", oldXRD)
|
||||||
|
} else {
|
||||||
|
os.Unsetenv("REGISTRY_AUTH_FILE")
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
authFile := "/tmp/auth.json"
|
||||||
|
// Make sure when REGISTRY_AUTH_FILE is set the auth file is used
|
||||||
|
os.Setenv("REGISTRY_AUTH_FILE", authFile)
|
||||||
|
|
||||||
// Explicitly set everything to default, except for when the default is “not present”
|
// Explicitly set everything to default, except for when the default is “not present”
|
||||||
opts = fakeImageDestOptions(t, "dest-", []string{}, []string{
|
opts = fakeImageDestOptions(t, "dest-", []string{}, []string{
|
||||||
"--dest-compress=false",
|
"--dest-compress=false",
|
||||||
})
|
})
|
||||||
res, err = opts.newSystemContext()
|
res, err = opts.newSystemContext()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, &types.SystemContext{}, res)
|
assert.Equal(t, &types.SystemContext{AuthFilePath: authFile}, res)
|
||||||
|
|
||||||
// Set everything to non-default values.
|
// Set everything to non-default values.
|
||||||
opts = fakeImageDestOptions(t, "dest-", []string{
|
opts = fakeImageDestOptions(t, "dest-", []string{
|
||||||
|
@ -28,6 +28,9 @@ the images in the list, and the list itself.
|
|||||||
Path of the authentication file. Default is ${XDG_RUNTIME\_DIR}/containers/auth.json, which is set using `podman login`.
|
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`.
|
If the authorization state is not found there, $HOME/.docker/config.json is checked, which is set using `docker login`.
|
||||||
|
|
||||||
|
Note: You can also override the default path of the authentication file by setting the REGISTRY\_AUTH\_FILE
|
||||||
|
environment variable. `export REGISTRY_AUTH_FILE=path`
|
||||||
|
|
||||||
**--src-authfile** _path_
|
**--src-authfile** _path_
|
||||||
|
|
||||||
Path of the authentication file for the source registry. Uses path given by `--authfile`, if not provided.
|
Path of the authentication file for the source registry. Uses path given by `--authfile`, if not provided.
|
||||||
|
Loading…
Reference in New Issue
Block a user