本文最后更新于 2026年5月15日。
✅ 已添加缓存破坏机制!
修改内容
1. Dockerfile 修改
为所有三个服务的 Dockerfile 添加了缓存破坏参数:
- EdgeAdmin-main/Dockerfile.local:34-35
- EdgeNode-main/Dockerfile.local:34-35
- EdgeAPI-main/Dockerfile.local:34-35
添加了:
ARG CACHE_BUST=1
并在 COPY start.sh 之前添加:
RUN echo "Cache bust: $CACHE_BUST"
2. docker-compose 文件修改
所有 docker-compose 文件都添加了构建参数:
- docker-compose.admin.yml:20
- docker-compose.node.yml:20
- docker-compose.api.yml:42
使用方法
方式 1:使用时间戳(推荐)
# PowerShell
$env:CACHE_BUST = Get-Date -Format "yyyyMMddHHmmss"
docker-compose -f docker-compose.admin.yml build
# Linux/Mac
CACHE_BUST=$(date +%Y%m%d%H%M%S) docker-compose -f
docker-compose.admin.yml build
方式 2:使用随机数
# PowerShell
$env:CACHE_BUST = Get-Random
docker-compose -f docker-compose.admin.yml build
# Linux/Mac
CACHE_BUST=$RANDOM docker-compose -f docker-compose.admin.
yml build
方式 3:手动指定
$env:CACHE_BUST = "2"
docker-compose -f docker-compose.admin.yml build
工作原理
- 当 CACHE_BUST 值改变时, RUN echo "Cache bust: $CACHE_BUST" 这一步的缓存会失效
- 这会强制重新执行后续的 COPY start.sh 命令
- 其他步骤(如编译 Go 代码)仍然使用缓存,加快构建速度
现在你可以使用 $env:CACHE_BUST = Get-Date -Format "yyyyMMddHHmmss" 来强制重新复制脚本文件了!