我为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。
答案 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