Я пытаюсь преобразовать свой проект в многоэтапные сборки. Однако последний шаг всегда завершается ошибкой:
Step 11/13 : COPY --from=build /bin/grafana-server /bin/grafana-server
COPY failed: stat /var/lib/docker/overlay2/xxxx/merged/bin/grafana-server: no such file or directory
Мой Dockerfile выглядит так:
FROM golang:latest AS build
ENV SRC_DIR=/go/src/github.com/grafana/grafana/
ENV GIT_SSL_NO_VERIFY=1
COPY . $SRC_DIR
WORKDIR $SRC_DIR
# Building of Grafana
RUN \
npm run build && \
go run build.go setup && \
go run build.go build
# Create final stage containing only required artifacts
FROM scratch
COPY --from=build /bin/grafana-server /bin/grafana-server
EXPOSE 3001
CMD ["./bin/grafana-server"]
Шаг build.go build
выведет артефакты на ./bin/
- Ошибка довольно бесполезна, если не сказать, что файлы не существуют там, где, я думаю, они должны существовать.
Моя структура папок на моей машине:
--| ~/Documents/dev/grafana/src/grafana/grafana
--------| bin
------------| <grafan-server builds to here>
--------| deploy
------------| docker
----------------| Dockerfile
Начиная с ~/Documents/dev/grafana/src/grafana/grafana
я выдаю: docker build -t grafana -f deploy/docker/Dockerfile .