Код: Выделить всё
# HDFS base image
FROM mdouchement/hdfs
COPY ${workdir.name} /${workdir.name}
COPY ${resource.dir} /etc/hadoop
Код: Выделить всё
javarun
${project.baseUri}/src/main/resources
Оказывается, первая 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]
Сейчас я запускаю его на компьютере с Windows, но процесс сборки в конечном итоге будет перенесен на сервер Linux. Как сделать абсолютный путь совместимым с обеими ОС при копировании файлов в Dockerfile?
EDIT Первоначально думал, что это проблема с путем Windows, поэтому попробовал собрать его на Linux и получил ту же ошибку.
Согласно этому сообщению, путь src должен быть относительным путем из контекста сборки. Вот почему абсолютный путь не работает. Но каков PATH по умолчанию для сборки Docker? Это тот же каталог, где находится Dockerfile?
Подробнее здесь: https://stackoverflow.com/questions/435 ... aven-plugi