Копирование файлов с помощью Dockerfile - PullRequest
0 голосов
/ 28 апреля 2020

В настоящее время у меня есть приложение Go, использующее gRP C. Я пытаюсь написать Dockerfile, который извлекает все мои deps и затем строит мой бинарный файл.

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

Моя структура

  • serviceA - Dockerfile
  • support / proto - proto файлы

Это мой Dockerfile

FROM golang:1.13-alpine

RUN apk add --no-cache --update \
        openssh-client \
        git \
        ca-certificates \
        make

RUN go env -w GOPRIVATE=github.com/RandomUser/*

# Enable Go Modules
ENV GO111MODULE=on

# Set the Current Working Directory inside the container
WORKDIR /app

ARG ACCESS_TOKEN
ENV ACCESS_TOKEN=$ACCESS_TOKEN

RUN git config --global url."https://randomUser:${ACCESS_TOKEN}@github.com".insteadOf "https://github.com"

# Add go.mod and go.sum first to maximize caching
COPY go.mod go.sum ./

# Copy in the project
COPY . .

# Download all dependencies. Dependencies will be cached if the go.mod and go.sum files are not changed
RUN go mod download

# Build the Go app
RUN CGO_ENABLED=0 go build -o company

EXPOSE 50010

ENTRYPOINT ["./company"]

В моем go .mod я использую

replace github.com/randomUser/support/proto/company => ./../support/proto/company

Так мое приложение go может найти файлы, но это не работает, когда я запускаю контейнер docker с docker -compose.

Кто-нибудь сталкивался с чем-то подобным раньше?

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