mirror of https://github.com/docker/cli.git
config: ignore empty config file instead of printing warning
Before this change, a warning would be printed if the `~/.docker/config.json` file was empty: mkdir -p ~/.docker && touch ~/.docker/config.json docker pull busybox WARNING: Error loading config file: /root/.docker/config.json: EOF Using default tag: latest .... Given that we also accept an empty "JSON" file (`{}`), it should be okay to ignore an empty file, as it's effectively a configuration file with no custom options set. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
ba2a712ff0
commit
969580a887
|
@ -3,7 +3,6 @@ package config
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
@ -13,7 +12,6 @@ import (
|
||||||
|
|
||||||
"github.com/docker/cli/cli/config/configfile"
|
"github.com/docker/cli/cli/config/configfile"
|
||||||
"github.com/docker/cli/cli/config/credentials"
|
"github.com/docker/cli/cli/config/credentials"
|
||||||
"github.com/pkg/errors"
|
|
||||||
"gotest.tools/v3/assert"
|
"gotest.tools/v3/assert"
|
||||||
is "gotest.tools/v3/assert/cmp"
|
is "gotest.tools/v3/assert/cmp"
|
||||||
"gotest.tools/v3/env"
|
"gotest.tools/v3/env"
|
||||||
|
@ -89,8 +87,7 @@ func TestEmptyFile(t *testing.T) {
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
||||||
_, err = Load(tmpHome)
|
_, err = Load(tmpHome)
|
||||||
assert.Assert(t, errors.Is(err, io.EOF))
|
assert.NilError(t, err)
|
||||||
assert.ErrorContains(t, err, ConfigFileName)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestEmptyJSON(t *testing.T) {
|
func TestEmptyJSON(t *testing.T) {
|
||||||
|
|
|
@ -118,7 +118,7 @@ func (configFile *ConfigFile) LegacyLoadFromReader(configData io.Reader) error {
|
||||||
// LoadFromReader reads the configuration data given and sets up the auth config
|
// LoadFromReader reads the configuration data given and sets up the auth config
|
||||||
// information with given directory and populates the receiver object
|
// information with given directory and populates the receiver object
|
||||||
func (configFile *ConfigFile) LoadFromReader(configData io.Reader) error {
|
func (configFile *ConfigFile) LoadFromReader(configData io.Reader) error {
|
||||||
if err := json.NewDecoder(configData).Decode(&configFile); err != nil {
|
if err := json.NewDecoder(configData).Decode(&configFile); err != nil && !errors.Is(err, io.EOF) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
var err error
|
var err error
|
||||||
|
|
Loading…
Reference in New Issue