#windows #docker #gradle #docker-compose
#Windows #docker #gradle #docker-compose
Вопрос:
У меня есть проект Gradle, и я использую docker в этом проекте. Когда я выполняю команду gradlew integrationTestDocker
, я получаю сообщение об ошибке ниже. OSError: Can not read file in context: \?C:project.gradle6.6.1executionHistoryexecutionHistory.lock
Комментарии:
1. Здесь та же проблема. Это многопроектная сборка Gradle, не контейнерная и не использующая Docker. Та же версия Gradle. История выполнения файла. блокировка существует, и я могу открыть ее в редакторе (это двоичные данные), но Gradle пытается прочитать ее на 51% в моих тестах. Что-то связанное с ошибкой подписи класса. Происходит только в Windows (10) — все строится и работает нормально в Linux и macOS.
2. @user3562927 Похоже, что эта проблема возникает из-за дополнительных материалов, добавленных в path, если вы видите путь, он начинается с «\? «, что, я думаю, вызывает проблему. Не уверен, почему выполнение этих команд добавляет «\? » к пути.
3. @MoA
\?
Префикс указывает имя в пространстве имен Win32 , и в этом нет ничего плохого само по себе. Что вы получите, если откроете командную строку и запуститеtype \?C:project.gradle6.6.1executionHistoryexecutionHistory.lock
в этот момент?4. @dxiv Вы правы, когда я выполнил команду, она напечатала несколько символов на экране. С добавлением «\? » или без, результат был тот же.
Ответ №1:
Об этом сообщалось ранее в октябре 2018 года (выпуск 7043) и ноябре 2019 года (выпуск 11520)
В обоих случаях предлагалось добавить .gradle
в .dockerignore
, чтобы убедиться, что он не является частью docker build
контекста.
Плюс этот комментарий:
После нескольких перезагрузок и очистки репозитория описанные ошибки больше не появлялись.
Похоже, это была какая-то локальная проблема / Windows
Комментарии:
1. Спасибо @VonC я только что добавил
.dockerignore
файл в проект и добавил.gradle
внутри этого файла. Это сработало!2. Черт; Я назначил награду за этот вопрос, и ответ не решает это для меня, потому что моя проблема не связана с Docker. Та же проблема — не удается прочитать историю выполнения. блокировка во время выполнения тестов. Но не внутри контейнера. Думаю, я начну другую награду. Обратите внимание, что у меня уже был .gradle в .dockerignore, не то чтобы это имело значение, поскольку моя проблема не зависит от Docker.
3. @user3562927 Интересно. Я буду следить за вашей новой наградой.