Как скопировать файлы из абсолютного пути в образ Docker с помощью плагина Docker MavenJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как скопировать файлы из абсолютного пути в образ Docker с помощью плагина Docker Maven

Сообщение Anonymous »

Я пишу микросервисы на Java. В конце я запускаю сборку maven для создания образа Docker на основе файла Dockerfile в каталоге [project-root]/docker. Некоторые файлы необходимо скопировать в образ Docker. Поэтому в моем Dockerfile есть следующие строки:

Код: Выделить всё

# HDFS base image
FROM mdouchement/hdfs
COPY ${workdir.name} /${workdir.name}
COPY ${resource.dir} /etc/hadoop
Переменные workdir.name и resources.dir определены в pom.xml

Код: Выделить всё

javarun
${project.baseUri}/src/main/resources

В то время как первая команда копирования использует относительный путь, эквивалентный target/docker/javarun, вторая команда использует абсолютный путь.

Оказывается, первая COPY работает, в то время как для второй COPY я получил ошибку, сообщающую, что каталог не найден:

Код: Выделить всё

[INFO] Building image docker.repo.lgc.com/distarch/com.lgc.dist.core.msp.service.hdfs
Step 1/3 : FROM mdouchement/hdfs
---> c95344e8749d
Step 2/3 : COPY javarun /javarun
---> e2e8cb5bc21f
Removing intermediate container f49da68fe77e
Step 3/3 : COPY file:/C:/Users/H184870/Workspace/core/com.lgc.dist.core.msp.service.hdfs//src/main/resources /etc/hadoop
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 14.906 s
[INFO] Finished at: 2017-04-20T11:07:12-05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.3.10:build (docker-build) on project com.lgc.dist.core.msp.service.hdfs:
Exception caught: lstat file:/C:/Users/H184870/Workspace/core/com.lgc.dist.core.msp.service.hdfs//src/main/resources: no such file or directory -> [Help 1]
Распечатанный путь: /C:/Users/H184870/Workspace/core/com.lgc.dist.core.msp.service.hdfs//src/main /resources, что выглядит странно. Я предполагаю, что это неверный путь для Windows.

Сейчас я запускаю его на компьютере с Windows, но процесс сборки в конечном итоге будет перенесен на сервер Linux. Как сделать абсолютный путь совместимым с обеими ОС при копировании файлов в Dockerfile?

EDIT Первоначально думал, что это проблема с путем Windows, поэтому попробовал собрать его на Linux и получил ту же ошибку.

Согласно этому сообщению, путь src должен быть относительным путем из контекста сборки. Вот почему абсолютный путь не работает. Но каков PATH по умолчанию для сборки Docker? Это тот же каталог, где находится Dockerfile?

Подробнее здесь: https://stackoverflow.com/questions/435 ... aven-plugi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»