小编Gri*_*fin的帖子

为什么我不能在界面中访问此字段?

我试图更好地理解接口,我不明白为什么s没有字段Width.我的例子在这里:

package main

import "fmt"

type shapes interface {
    setWidth(float64)
}

type rect struct {
    Width float64
}

func (r *rect) setWidth(w float64) {
    r.Width = w
}

var allShapes = map[string]shapes{
    "rect": &rect{},
}

func main() {
    r := &rect{}
    r.setWidth(5)
    fmt.Println(r.Width)  // this works
    for _, s := range allShapes {
        s.setWidth(7)
        fmt.Println(s.Width) // why not???
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么r有宽度但s不宽?我得到的确切错误是:

s.Width undefined (type shapes has no field or method …
Run Code Online (Sandbox Code Playgroud)

go

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

在 docker 容器中公开动态打开的端口

假设一个应用程序动态打开在 docker 容器内运行的 UDP 端口,如何将这些端口公开/绑定到外部(主机)端口?

这可能与此处提出的问题相同,但是,答案(使用--net=host)限制了运行多个容器实例向主机公开相同端口的可扩展性。

有没有什么办法可以配置容器中动态打开的端口与主机的一对一映射?

例如端口45199/udp在容器内打开并暴露给45199/udp主机上的端口?

linux iptables docker

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

什么可能导致unzip命令在我的场景中返回-1?

我通过system()以下格式在我的C++代码中调用来解压缩:

/usr/bin/unzip -o -q /<my_path_to_zip_file>/cfg_T-KTMAKUCB.zip -d /<my_path_to_dest>/../
Run Code Online (Sandbox Code Playgroud)

这几乎有90%的时间会成功.我无法理解什么会导致它失去时间与-1返回代码失败.有任何想法吗?

c++ linux unzip

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

如何推动仅使用Docker推送改变了什么?

.这是我创建图像的方式:

  1. 得到了最新的Ubuntu图像
  2. 作为容器运行并附加到它
  3. 从docker容器中的git克隆源代码
  4. 标记并将docker镜像推送到我的注册表

.从另一台机器我拉,改变并推动它:

  1. Docker从注册表中拉出来
  2. 使用拉出的图像启动容器并附加到其上
  3. 更改克隆的git目录中的内容
  4. 停止容器,标记并将其推送到注册表

现在我看到的问题是,每次重复B时,它都会尝试将~600MB(这是公共图像层)上传到注册表,这在我的情况下需要很长时间.

有没有办法避免上传整个600MB,而是推送唯一已更改的目录?

我究竟做错了什么?你们如何使用docker进行频繁推送?

docker docker-registry

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

标签 统计

docker ×2

linux ×2

c++ ×1

docker-registry ×1

go ×1

iptables ×1

unzip ×1