小编Shr*_*rma的帖子

Golang:使用 init() 函数进行测试

嗨,我是 Go 的新手,我正在编写一个简单的应用程序,它从 env 变量中获取一些配置。我在 init 函数中执行此操作,如下所示。

type envVars struct {
    Host     string `env:"APP_HOST"`
    Username string `env:"APP_USERNAME"`
    Password string `env:"APP_PASSWORD"`
}

var envConfig envVars

func init() {
    if err := env.Parse(&envConfig); err != nil {
        log.Fatal(err)
    }
}
Run Code Online (Sandbox Code Playgroud)

我编写了测试来验证是否正确读取了 env 变量。但问题是我的程序的 init func 甚至在我的测试的 init func 之前就被调用了。有什么办法可以在我的程序的 init func 被调用之前进行某种设置。

func init() {
    os.Setenv("APP_HOST", "http://localhost:9999")
    os.Setenv("APP_USERNAME", "john")
    os.Setenv("APP_PASSWORD", "doe")
}

func TestEnvConfig(t *testing.T) {
    assert.NotNil(t, envConfig)
    assert.Equal(t, "http://localhost:9999", envConfig.Host)
}
Run Code Online (Sandbox Code Playgroud)

go

9
推荐指数
2
解决办法
1万
查看次数

docker pull/push无法使用不安全的注册表

我安装了docker工具箱,我正在尝试连接到我的私人注册表.

我添加了以下内容 /var/lib/boot2docker/profile

 EXTRA_ARGS='
--label provider=virtualbox --insecure-registry http://myregistry.com:80

'
Run Code Online (Sandbox Code Playgroud)

我能够成功登录注册表.但是当我尝试从/向注册表拉/推时,我收到以下错误.

Error response from daemon: unable to ping registry endpoint
https://myregistry.com:80/v0/ v2 ping attempt failed with error: Get
https://myregistry.com:80/v2/: tls: oversized record received with
length 20527  v1 ping attempt failed with error: Get
https://myregistry.com:80/v1/_ping: tls: oversized record received
with length 20527
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.谢谢

docker boot2docker docker-registry

5
推荐指数
1
解决办法
3937
查看次数

标签 统计

boot2docker ×1

docker ×1

docker-registry ×1

go ×1