Java Docker映像在代码更改后不重建

Java Docker映像在代码更改后不重建,java,docker,dockerfile,Java,Docker,Dockerfile,我正在玩弄一个docker项目,该项目以 docker run-p 8888:8888-v/$(pwd)/example/proto:/proto 在它里面是一个基于gradle的java应用程序,我想进一步了解它,所以我开始修改它的源代码,添加一些日志等等 我试图以上述方式重建并重新运行docker映像,但我的修改结果似乎不可见,日志没有打印等。 我用docker rmi删除了图像,但每次重建后,似乎都创建了相同的图像docker images始终显示它是3周前创建的,并且图像id始终相同 在

我正在玩弄一个docker项目,该项目以

docker run-p 8888:8888-v/$(pwd)/example/proto:/proto

在它里面是一个基于gradle的java应用程序,我想进一步了解它,所以我开始修改它的源代码,添加一些日志等等

我试图以上述方式重建并重新运行docker映像,但我的修改结果似乎不可见,日志没有打印等。 我用docker rmi删除了图像,但每次重建后,似乎都创建了相同的图像<代码>docker images始终显示它是3周前创建的,并且图像id始终相同

在应用程序级别检查build目录包含新编译的java类,因此显然在该级别我的更改是有效的,但docker似乎仍然使用旧代码

任何帮助都将不胜感激

更新:
Dockerfile

FROM gradle:7.0.0-jdk11 as cache
RUN mkdir -p /home/gradle/cache_home
RUN mkdir -p /proto
RUN touch /proto/any.proto
ENV GRADLE_USER_HOME /home/gradle/cache_home
COPY build.gradle /home/gradle/java-code/
COPY gradle.properties /home/gradle/java-code/
WORKDIR /home/gradle/java-code
RUN gradle build -i --no-daemon || return 0

FROM gradle:7.0.0-jdk11 as runner
COPY --from=cache /home/gradle/cache_home /home/gradle/.gradle
COPY . /usr/src/java-code/
WORKDIR /usr/src/java-code
EXPOSE 8888 
ENTRYPOINT ["gradle", "bootRun", "-i"]

docker build
会将您的本地更改发送到您的本地docker deamon,以构建到映像中

cd projectWithDockerfile
docker build -f ./Dockerfile -t me/gradlethingy .
docker run -p 8888:8888 -v /$(pwd)/example/proto:/proto me/gradlethingy

没有
构建
我猜你每次都是从网络上获取他们的

docker rmi
显示了一些
已删除。。。XXX
图像?@Eugene:是的,两个
未标记:…
然后几个
被删除:…
然后如果你做了
docker图像| grep XXX
-它们没有显示,对吗?@Eugene:如果你是指我发布的
docker rmi
的“主”图像,它在
docker图像
之后没有出现。
中的几个数字被删除:…
那些我认为我从未在
docker images中看到的数字。一个本地构建将把你的更新放到谢谢你的地方,事实上,它会生成一个新构建的docker映像,包括我的更改。但是在我的本地机器文件系统中没有可见的编译过的java类(没有创建
build
directory)。我将尝试研究本地文件系统中发生的事情和docker容器中发生的事情之间的区别……将文件放到本地装入的卷上,这需要在映像的
运行
后进行
构建
build
dir是否是
“gradle”、“bootRun”和“-i”
命令应该填充的内容?
build
目录是在本地文件系统的应用程序目录中创建的,即
C:\Users\…\gradlethingy\build
在我发出
gradle build
后,没有涉及docker命令,它包含最新编译的java类。我注意到,当我发布
docker build…
然后
docker run…
时,本地文件系统中没有创建此目录,但是创建的docker映像包含最新的java代码