Я пытаюсь использовать новую опцию RUN --mount
в экспериментальном наборе функций докера, но мне трудно заставить ее делать то, что я хочу, а именно ...
список папок проекта
hello.cpp
makefile
Dockerfile
И Dockerfile выглядит так:
#syntax=docker/dockerfile:experimental
FROM ubuntu
RUN --mount=type=cache,target=/home,source=. make
CMD ["bash"]
и команда build выглядит следующим образом:
docker build -t myimage:latest .
По сути, я хочу сохранить преимущество, заключающееся в том, что make
компилирует только устаревшие цели, что исключает использование COPY . /home
, потому что это не слишком сохраняет временные метки для файлов, скопированных через. make
всегда делает все.
N.B. Я упростил опции --mount
до минимального набора, IRL я бы добавил uid=1000,gid=1000
или аналогичный.
Сообщения об ошибках, которые я получаю, зависят от того, как я установил параметры. Либо docker build
barfs с сообщением «каталог не найден», либо make
завершается с ошибкой «файл не найден».
Я почти уверен, что просто не знаю, как правильно установить значения source
и target
, и не нахожу документацию полезной.
Спасибо!