Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 代码更改时Docker未重新启动_Spring_Docker_Docker Compose_Restart - Fatal编程技术网

Spring 代码更改时Docker未重新启动

Spring 代码更改时Docker未重新启动,spring,docker,docker-compose,restart,Spring,Docker,Docker Compose,Restart,如本文所述,如果我将源代码装入该docker的卷中的文件夹,我会立即看到我所做的更改 但是,这是我的docker compose: version: '3' services: database: ... engine: build: ./name restart: always volumes: - .:/name-code - ./name/config-e

如本文所述,如果我将源代码装入该docker的
中的文件夹,我会立即看到我所做的更改

但是,这是我的
docker compose

version: '3'

services: 
    database:
        ...

    engine:
        build: ./name
        restart: always
        volumes: 
            - .:/name-code
            - ./name/config-examples:/config
        ports: 
            - 8080:8080
        depends_on: 
            - database
        environment: 
            - TZ=Europe/Rome
            ...

    grafana:
        ...
如您所见,我正在安装
:/name code
。。。所以,只要我更改这个目录中的代码,我就会看到docker用新的JAR重新启动(我正在开发一个Spring引导应用程序)。。。然而,这并没有发生,事实上,我的本地jar如下所示:

-rw-r--r--    1 user     staff     43171359 Jun  1 12:35 project.jar
但docker中的jar如下所示:

-rw-r--r--    1 root     root      43171269 May 31 19:52 app.jar
FROM adoptopenjdk/openjdk11:jdk-11.0.11_9-alpine-slim
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
COPY config-examples /app/config

CMD ["java","-jar","/app.jar"]
(刚刚被重命名),但正如您所看到的,上一次更新非常不同,实际上更新没有被导入

日志:


我再次阅读了您的帖子,误解在于
:name code
是一个卷装入点,它不是docker compose构建的docker映像的一部分,因此更改其内容不会强制docker重建映像。否则,新内容将可从容器访问

因此,您可以看到,
CACHED[2/3]COPY target/*.jar app.jar
是从缓存层检索的

在我看来,解决方案是编写一个自定义Dockerfile,它显式地添加
jar
,如下所示。因此,每次jar发生更改时,图像都会按照预期进行重建


问候。

你能发布你的docker构建日志吗?@Antoniopetrica只是
docker compose开始
或者你想要
docker compose开始
?docker composebuild@AntonioPetricca请重试添加
--verbose
,以获取有关
docker build
的详细信息。您好,感谢您抽出时间。。。。我已经有一个Dockerfile导入jar(这就是为什么我有
引擎:build:./name
应该触发该文件夹中的Dockerfile,它将导入jar(几分钟前就这个问题发布了))
FROM adoptopenjdk/openjdk11:jdk-11.0.11_9-alpine-slim
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
COPY config-examples /app/config

CMD ["java","-jar","/app.jar"]