При использовании скретч-Docker-контейнера, получите это сообщение об ошибке "" не может разархивировать сообщение DNS " - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь запустить контейнер локальных чеков на моем локальном компьютере из моего кода go. Dockerfile выглядит следующим образом:

FROM golang:1.11.4 as builder


WORKDIR /app

ADD . .

RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64  GOARM=7 make

FROM scratch
COPY --from=builder /app/myprogram .

В моем коде я пытаюсь подключиться к mongodb, используя следующий URL mongodb+srv://myusername:mypassword@my-staging-vki7g.gcp.mongodb.net

Я могу прекрасно подключиться к этому mongodb на моем местном mongoshell. Однако, когда я запускаю мой контейнер scracth, я получаю следующую ошибку

error parsing uri (mongodb+srv://myusername:mypassword@my-staging-vki7g.gcp.mongodb.net): lookup provendb-staging-vki7g.gcp.mongodb.net on 192.168.65.1:53: cannot unmarshal DNS message

Есть ли зависимости, которые нужно добавить?

1 Ответ

0 голосов
/ 11 апреля 2019

Я думаю, вы пропустили некоторые флаги сборки. Также не уверен, почему вы захотите скомпилировать как руку для контейнера докера.

Я написал сообщение в блоге о создании образа Docker, как вы делаете здесь. Это может помочь вам решить вашу проблему.

https://marcofranssen.nl/docker-tips-and-tricks-for-your-go-projects/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...