Использование Docker в Windows чревато проблемами, связанными с путями. Похоже, вы падаете в одну из этих кроличьих норе. Предполагая, что .gradle является каталогом (он находится на моей машине):
Способ, который я решил, - это использование томов докера: тома отличаются от сопоставления дисков, которое вы используете в данный момент, поскольку файлы не будут отображаться в файловой системе хоста, но они сохраняются при выполнении контейнеров, чего часто достаточно. Например, у меня есть каталог /git
, смонтированный из тома во всех моих инструментах разработки, который используется для получения исходного кода, клонированного из git. Если вам нужен доступ к этим файлам вне докера, то том может быть неудобным, но если вы используете gradle только внутри контейнера, а не на хосте, то вы можете сопоставить каталог .gradle с томом и просто повторно использовать его в разных контейнерах. .
Прежде чем вы сделаете это, рекомендуется явно создать том с:
docker volume create gradle
Существуют различные техники, которые неявно создают объемы, но лично мне нравится быть явным из-за принципа наименьшего удивления.
Синтаксис для монтирования тома аналогичен тому, который вы использовали выше, но мы просто называем громкость слева от переключателя громкости:
docker container run -it --rm -v gradle:/root/.gradle/ ...
Возможно, другая проблема в вашей команде запуска Docker. В конце вы передаете строку './gradlew'
. Вы предполагаете, что это находится в рабочем каталоге, что может быть проблемой, если рабочий каталог не тот, о котором вы думаете. Чтобы этого не произошло, вы должны указать рабочий каталог с помощью ключа -w <dir>
. Что-то вроде:
docker container run -it --rm -w /root /v gradle:/root/.gradle/