Сборка приложения docker go с командой lint - PullRequest
0 голосов
/ 12 декабря 2018

Я создал следующий Docker-контейнер, все работает, кроме вещи, которая является make lint

В корне проекта у меня есть Makefile с текущей записью

lint:
    gometalinter --config=gometalinter.json ./...

когда я использую его локально на своем компьютере (macbook) и если, например, файл не отформатирован go fmt Я получаю ошибку при выполнении кода выше.

Проблема заключается в том, что при создании образа докера с помощью docker build command

У меня возникли проблемы с распылением, которые не связаны с моим проектом.в gometalinter.json у меня есть следующая запись, чтобы обойти каталог поставщика

{
  "vendor": true
}

Это содержимое докера

FROM golang:1.11.1-alpine3.7 

RUN apk add --update --no-cache git make curl bash

ADD https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-amd64 /usr/bin/dep
RUN chmod +x /usr/bin/dep

WORKDIR /go/src/my-proj

COPY . ./

COPY Gopkg.toml Gopkg.lock ./

RUN dep ensure 
# From the error it seems that this is related to cgo but even adding the next line doesnt helps, same error occurred 
RUN CGO_ENABLED=0
# this command download gometalinter which is running OK
RUN make download 

RUN make lint

когда я запускаю lint, это то, что я получил, которыйне связан с моим проектом

../../../usr/local/go/src/net/lookup_unix.go:80:24:warning: error return value not checked (undeclared name: cgoLookupHost) (errcheck)
../../../usr/local/go/src/net/lookup_unix.go:95:24:warning: error return value not checked (undeclared name: cgoLookupIP) (errcheck)
../../../usr/local/go/src/net/lookup_unix.go:107:23:warning: error return value not checked (undeclared name: cgoLookupPort) (errcheck)
../../../usr/local/go/src/net/lookup_unix.go:123:24:warning: error return value not checked (undeclared name: cgoLookupCNAME) (errcheck)
../../../usr/local/go/src/net/lookup_unix.go:323:23:warning: error return value not checked (undeclared name: cgoLookupPTR) (errcheck)

1 Ответ

0 голосов
/ 13 декабря 2018

Вы неправильно устанавливаете переменную окружения в своем Dockerfile .

RUN CGO_ENABLED=0

должно быть

ENV CGO_ENABLED=0

...