小编Nin*_*a S的帖子

如何正确复制二进制文件

我使用以下代码以编程方式构建二进制文件,二进制文件已成功构建,但现在我想通过代码将其复制到go/bin路径,我能够做到,它复制文件但不是可执行文件.

什么可能是错的?源文件是可执行的

bPath := filepath.FromSlash("./integration/testdata/" + fileName)
cmd := exec.Command("go", "build", "-o", bPath, ".")
cmd.Dir = filepath.FromSlash("../")
err := cmd.Run()
if err != nil {
    fmt.Println("binary creation failed: ", err)
}

fmt.Println(os.Getenv("GOPATH"))
dir, _ := os.Getwd()
srcPath := filepath.Join(dir, "testdata", , fileName)
targetPath := filepath.Join(os.Getenv("GOPATH"),"/bin/",fileName)
copy(srcPath, targetPath)
Run Code Online (Sandbox Code Playgroud)

副本是:

func copy(src string, dst string) error {
    // Read all content of src to data
    data, err := ioutil.ReadFile(src)
    if err != nil …
Run Code Online (Sandbox Code Playgroud)

unix file-permissions file go

3
推荐指数
1
解决办法
68
查看次数

在 go 中使用curl和命令

我正在使用 Go 和命令来执行,curl它按预期工作

curl := exec.Command("curl", "https://services.odata.org/V3/northwind/northwind.svc/")
    out, err := curl.Output()
    if err != nil {
        fmt.Println("erorr" , err)
        return
    }
    fmt.Println(out)
Run Code Online (Sandbox Code Playgroud)

现在我想使用一些占位符,例如

curl -O http://quiet-waters-1228.herokuapp.com/assets/image.jpg
Run Code Online (Sandbox Code Playgroud)

但现在我需要获取命令的 url,例如,如果我在 bash 中运行,mytool url我会得到 url 值

`curl -O $(mytool url)`
Run Code Online (Sandbox Code Playgroud)

问题是我们需要执行代码中的命令,但我不知道如何传递它

curl := exec.Command("curl", "curl -O $(url)")
        out, err := curl.Output()
        if err != nil {
            fmt.Println("erorr" , err)
            return
        }
        fmt.Println(out)
Run Code Online (Sandbox Code Playgroud)

linux curl go

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

Helm 只更新一个属性

我使用 helm 通过以下命令成功安装组件

helm template install/kubernetes/helm/istio --name istio --namespace istio-system  \ --set tracing.enabled=true --set servicegraph.enabled=true \ --set grafana.enabled=true | kubectl apply -f -
Run Code Online (Sandbox Code Playgroud)

现在我只想更改一个属性,例如

--set tracing.enabled=false
Run Code Online (Sandbox Code Playgroud)

我只使用我需要修改的字段尝试以下操作

helm template update/kubernetes/helm/istio --name istio --namespace istio-system  \ --set tracing.enabled=flase  | kubectl apply -f -
Run Code Online (Sandbox Code Playgroud)

没有成功,我错过了什么吗?

kubernetes kubernetes-helm

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

如何获取记录器的文件名和函数名

我正在使用 logrus按预期工作的操作系统,现在我们需要将文件和函数添加到记录器输出中,您可以从中调用记录器,

我们需要它像

文件 log-ut-usage

func main(){


  logs := lts.InitLogger("test","1","debug")

  logs.Debugf("test 123")
....

}
Run Code Online (Sandbox Code Playgroud)

这是所需的输出


{"file":"log-ut-usage/main.go:21","function":"main","level":"warn","test 123":"ddd","timestamp":"2019-10-02T09:21:39.309559Z"}
Run Code Online (Sandbox Code Playgroud)

目前我们得到了文件和函数

文件 logger.go

func InitLog(label string) LoggerI {

loggerImpl = &logrus.Logger{
        Out:          os.Stdout,
        Level:        level,
        ReportCaller: true,
        Formatter: &logrus.JSONFormatter{
            TimestampFormat: timestampFormat,
            CallerPrettyfier: func(f *runtime.Frame) (string, string) {
                s := strings.Split(f.Function, ".")
                funcname := s[len(s)-1]
                _, filename := path.Split(f.File)
                return funcname, filename
            },
        },
    }
Run Code Online (Sandbox Code Playgroud)

这是(不需要的)输出

{"file":"logger.go","func":"InitLog","level":"debug","msg":"test 123","time":"2019-10-02 12:21:39"}
Run Code Online (Sandbox Code Playgroud)

我不想获取logger.go我们对 json 格式器进行编码的文件,我想获取使用 logger 的文件。

logging go

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

创建具有受限权限的 kubeconfig

我需要创建一个具有受限访问权限的 kubeconfig,我希望能够提供在特定名称空间中更新 configmap 的权限,如何使用以下权限创建这样的 kubeconfig

  1. 对于特定命名空间 (myns)
  2. 仅更新配置映射 (mycm)

有没有简单的方法来创建它?

这里棘手的部分是我需要某个程序能够访问集群 X 并仅修改此 comfigMap,我如何从外部进程执行此操作而不提供完整的 kubeconfig 文件,这可能会因安全原因而出现问题

为了明确起见,我拥有集群,我只想授予某些程序受限权限

azure google-cloud-platform kubernetes

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