IntelliJ docker部署ADD:没有这样的文件或目录

时间:2017-10-26 12:55:42

标签: java docker intellij-idea docker-compose dockerfile

我为IntelliJ安装了docker集成插件,可以立即部署项目 Currenty我正在用gradle开展一个项目。结构看起来像:

project  
|- build/
|-- docker/
|--- Dockerfile
|--- target/
|---- myApp.jar
|- docker/
|-- Dockerfile
|- src/
|-- de.myApp/
|--- SOURCECODE
|- build.gradle
|- gradlew

在我的 Dockerfile 中,我将.jar添加到:
ADD target/data_sample_set_structure_consumer-0.0.0.jar app.jar

部署配置使用Deployment: docker/Dockerfile

当我点击 start 时,收到以下错误消息:

Step 3/4 : ADD target/data_sample_set_structure_consumer-0.0.0.jar app.jar

Error: ResponseItem.ErrorDetail[code=<null>,message=ADD failed: stat /var/lib/docker/tmp/docker-builder981429297/target/data_sample_set_structure_consumer-0.0.0.jar: no such file or directory]
Failed to deploy '<unknown>  Dockerfile: docker/Dockerfile': ADD failed: stat /var/lib/docker/tmp/docker-builder981429297/target/data_sample_set_structure_consumer-0.0.0.jar: no such file or directory

但如果我使用./gradlew buildDocker构建 Dockerfile ,一切都会好的。

PS: 我毫不费力地检查了this

2 个答案:

答案 0 :(得分:3)

IntelliJ Docker集成假定docker build的context文件夹始终是Dockerfile的父文件夹。

在您的情况下,它实际上是<project-root>/docker文件夹(在Deployment: docker/Dockerfile中指定)。您真正想要的是将maven构建复制的文件用于<project-root>/build/docker

在IntelliJ 2017.2中,没有办法从build文件夹中选择docker文件,因此对于2017.2,唯一的解决方法是配置构建以在<project-root>/docker

下的某处复制目标文件夹

对于IDEA 2017.3 Docker运行配置允许选择项目内外的任何docker文件,因此您应该能够选择build文件夹下的位置。请查看IDEA 2017.3 public preview和更新的泊坞窗plugin

答案 1 :(得分:0)

对于像我这样着迷此问题的任何人。 自上次回答以来,情况已经改变。

您现在可以为IntelliJ Docker集成指定上下文文件夹。 您可以通过以下方法进行操作:Run > Edit Configurations > Select your docker run/debug config并指定Context folder