dsozqcx9668 2019-01-02 14:14
浏览 130
已采纳

使用testcontainer时出现问题

I was trying out the sample of the page https://github.com/testcontainers/testcontainer-go

package main

import (
    "context"
    "fmt"
    "net/http"
    "testing"

    testcontainer "github.com/testcontainers/testcontainer-go"
)

func TestNginxLatestReturn(t *testing.T) {
    ctx := context.Background()
    req := testcontainer.ContainerRequest{
        Image:        "nginx",
        ExposedPorts: []string{"80/tcp"},
    }
...
}

but when I put the code in the file main.go under <home>/go/src/my-sample and call go get, I just get this error:

#

 github.com/testcontainers/testcontainer-go
../github.com/testcontainers/testcontainer-go/docker.go:116:32: cannot use inspect.NetworkSettings.NetworkSettingsBase.Ports (type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortMap) as type "github.com/docker/go-connections/nat".PortMap in return argument
../github.com/testcontainers/testcontainer-go/docker.go:197:25: multiple-value uuid.NewV4() in single-value context
../github.com/testcontainers/testcontainer-go/docker.go:219:3: cannot use exposedPortSet (type map["github.com/docker/go-connections/nat".Port]struct {}) as type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortSet in field value
../github.com/testcontainers/testcontainer-go/docker.go:261:3: cannot use exposedPortMap (type map["github.com/docker/go-connections/nat".Port][]"github.com/docker/go-connections/nat".PortBinding) as type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortMap in field value

What am I doing wrong?

  • 写回答

1条回答 默认 最新

  • dounue1965 2019-01-02 15:27
    关注

    I reproduced the problem as well, but I did manage to build and run the test with the following steps:

    1. Create a my_package directory outside of the $GOPATH tree.
    2. Create a mypackage_test.go file with the following content:

      package main
      
      import (
          "testing"
      
          testcontainer "github.com/testcontainers/testcontainer-go"
      )
      
      func testNginxLatestReturn(t *testing.T) {
          req := testcontainer.ContainerRequest{
              Image:        "nginx",
              ExposedPorts: []string{"80/tcp"},
          }
          t.Log(req)
      }
      
    3. go mod init mypackage

    4. go test
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看