【发布时间】:2021-12-27 22:44:08
【问题描述】:
我想构建一个镜像并运行一个容器,但是在对代码进行一些更改后,我使用此命令 docker-compose up --build 重建镜像并运行容器。
但是在 Docker Desktop 中的图像列表中,我看到了 Created about 6 hours ago. 但我是在 2 分钟前完成的。
我经常在重建之前删除 docker 桌面中的图像,但我发现这种行为没有改变。
唯一的出路是在重建 3-5 个镜像后完全重新安装 docker 桌面应用程序,但这太疯狂了!
有什么问题?是缓存吗?
这是我的 docker-compose
version: '3'
services:
attachment-loader-prim:
container_name: attachment-loader
build:
context: ""
restart: always
image: attachment-loader:latest
environment:
SPRING_PROFILES_ACTIVE: "prim"
LOGGING_LEVEL_ORG_HIBERNATE_SQL: DEBUG
LOGGING_LEVEL_ORG_HIBERNATE_TYPE_DESCRIPTOR_SQL_BASICBINDER: TRACE
networks:
- loader-network
ports:
- 8005:8005
- 8085:8085
attachment-loader-sec:
container_name: attachment-loader-sec
build:
context: ""
restart: always
image: attachment-loader:latest
environment:
SPRING_PROFILES_ACTIVE: "sec"
LOGGING_LEVEL_ORG_HIBERNATE_SQL: DEBUG
LOGGING_LEVEL_ORG_HIBERNATE_TYPE_DESCRIPTOR_SQL_BASICBINDER: TRACE
networks:
- loader-network
ports:
- 8006:8005
- 8086:8086
networks:
loader-network:
attachable: true
这是我的 dockerfile
FROM adoptopenjdk/openjdk11:alpine-jre
VOLUME /tmp
ARG TZ='Europe/Berlin'
RUN sed -i 's/dl-cdn.alpinelinux.org/uk.alpinelinux.org/' /etc/apk/repositories
RUN apk upgrade --update \
&& apk add -U tzdata curl jq \
&& cp /usr/share/zoneinfo/${TZ} /etc/localtime \
&& apk del tzdata \
&& rm -rf \
/var/cache/apk/*
RUN echo ${TZ} > /etc/timezone
ARG DEPENDENCY=build/dependency
COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY ${DEPENDENCY}/META-INF /app/META-INF
COPY ${DEPENDENCY}/BOOT-INF/classes /app
ENTRYPOINT ["java","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8005","-cp","app:app/lib/*","com.path.to.your.Application.kt"]
【问题讨论】:
-
请edit 发帖并添加minimal reproducible example。如果我忘记了
--build标志,我就会遇到这个问题。当我包含--build标志时,我从未有过这种行为。 -
所以从干净的 docker 实例开始,构建一次你的镜像。尝试
docker image ls,然后更改您的代码并再次构建它,然后将docker image ls的旧输出与新输出进行比较。有两张图片还是只有一张? -
@DevilaN 我做到了,在更改代码并重建后,我看到相同的图像,字段为“创建:25 分钟前”,尽管我在一分钟前构建了新图像
-
请包含您的构建命令的输出。我们需要看到构建成功并且没有被缓存。
标签: docker docker-desktop