Uploaded image for project: 'Go Driver'
  1. Go Driver
  2. GODRIVER-1451

Unable to connect to Altas with multiple stage docker build

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 1.1.3
    • Component/s: Connections
    • None
    • Environment:
      MacOS Docker Server: 19.03.5
      Go: 1.13

      I was able to connect to Atlas with Single stage docker build. However, when I want to optimise the image, i go for multi stage docker build, it cannot connect to Atlas, without any change on code

       

      Go code

       

      url := "mongodb+srv://<USERNAME>:<PASSWORD>@cluster0-7odzu.mongodb.net/test?retryWrites=true&w=majority"
      
      client, err := mongo.NewClient(options.Client().ApplyURI(url))
      log.Println("db client created")
      if err != nil {
         log.Fatal(err)
      }
      
      ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)
      defer cancel()
      err = client.Connect(ctx)
      
      if err != nil {
         return nil, err
      }
      log.Println("db client connected")
      
      err = client.Ping(ctx, readpref.Primary())
      if err != nil {
         return nil, err
      }
      log.Println("db client ping")
      

       

       

      Dockerfile

       

      FROM golang:1.13 as build-env
      RUN mkdir /medicbot
      WORKDIR /medicbot
      COPY go.mod .
      COPY go.sum .
      
      RUN go mod download
      COPY . .
      
      RUN go build -o /go/bin/example
      EXPOSE 5000
      ENTRYPOINT ["/go/bin/example"]
      
      # Build the binary
      RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o /go/bin/example
      FROM scratch
      COPY --from=build-env /go/bin/example /go/bin/example
      EXPOSE 5000
      ENTRYPOINT ["/go/bin/example"]
      

       

      Current console output

       

      2019/12/20 12:00:54 db.go:34: db client created
      2019/12/20 12:00:54 db.go:46: db client connected
      2019/12/20 12:01:14 main.go:28: context deadline exceeded
      

       

       

      Expected console output (when using single stage docker build)

       

      2019/12/20 11:57:28 db client created
      2019/12/20 11:57:28 db client connected
      2019/12/20 11:57:28 db client ping
      

       

       

            Assignee:
            divjot.arora@mongodb.com Divjot Arora (Inactive)
            Reporter:
            weilun_95@hotmail.com Yong Wei Lun
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: