У меня есть монорепо, которое содержит различные Go службы и библиотеки. Он имеет структуру
monorepo
services
service-a
- Dockerfile
go.mod
go.sum
My go .mod находится в root monorepo, и службы используют зависимости, указанные в файле go .mod.
Я создаю Docker образ с
docker build -t some: tag ./services/service-a/
Когда я пытаюсь собрать мой Docker изображение из root monorepo с вышеприведенной командой docker Я получаю следующую ошибку.
Не удалось скопировать: запрещенный путь вне контекста сборки: ../../ go .mod ()
Ниже приведен мой Dockerfile
FROM golang:1.14.1-alpine3.11
RUN apk add --no-cache ca-certificates git
# Enable Go Modules
ENV GO111MODULE=on
# Set the Current Working Directory inside the container
WORKDIR /app
# Copy go mod and sum files
COPY ../../go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -o service-a
ENTRYPOINT ["/app/service-a"]
Что мне нужно сделать, чтобы иметь возможность добавлять файлы в мое Docker изображение, которые не отображаются? в текущем каталоге без необходимости иметь отдельные go .mod и go .sum в каждом сервисе в рамках monorepo?