docker compose up -d --build 完全使用新代码打包的方法

docker compose up -d --build 会使用新代码构建新镜像。但为了确保完全使用新代码,建议执行以下完整流程:

推荐的完整重新部署流程

bash 复制代码
# 1. 停止并删除现有容器
docker compose down

# 2. 删除旧镜像(可选但推荐,确保完全重建)
docker compose build --no-cache

# 3. 启动新容器
docker compose up -d

或者一步到位(你当前的命令增强版)

bash 复制代码
# 停止容器 + 强制重新构建 + 后台启动
docker compose down && docker compose up -d --build --force-recreate

参数说明

  • --build: 构建镜像后再启动容器
  • --force-recreate: 强制重新创建容器(即使配置未改变)
  • --no-cache: 构建时不使用缓存层,完全重新构建
  • -d: 后台运行

验证是否使用了新代码

bash 复制代码
# 查看镜像构建时间
docker images | grep miaohui

# 查看容器日志确认启动情况
docker compose logs -f

# 进入容器检查代码版本
docker compose exec <service_name> ls -la /app

如果还是没更新,可能的原因

  1. 代码没有正确复制到容器

    • 检查 Dockerfile 中的 COPY 命令
    • 确认 .dockerignore 没有排除关键文件
  2. 使用了 volume 挂载覆盖了代码

    • 检查 docker-compose.yml 中的 volumes 配置
    • 如果挂载了本地目录,容器内会使用挂载的代码而非镜像内的代码
  3. Python 缓存问题

    bash 复制代码
    # 清理 Python 缓存后重建
    find . -type d -name __pycache__ -exec rm -r {} +
    find . -type f -name "*.pyc" -delete
    docker compose down && docker compose up -d --build
相关推荐
容器魔方15 分钟前
华为云云容器引擎CCE 2026-Q1优化升级,全面进化您的云原生体验!
大数据·分布式·云原生·容器·云计算
Zhu75832 分钟前
【配置优化】docker29及以上版本配置优化。
docker
云游牧者41 分钟前
K8S-Ingress流量治理全解-Traefik从入门到实战完全指南
云原生·中间件·容器·kubernetes·ingress·traefik
万里侯41 分钟前
Kubernetes网络性能优化:提升集群网络效率
微服务·容器·k8s
土星云SaturnCloud1 小时前
土星云AI边缘计算-算法运行环境搭建:Docker部署全流程实操
服务器·人工智能·docker·ai·边缘计算
万里侯1 小时前
技术人的人际关系:建立良好的职业网络
微服务·容器·k8s
fanzhonghong1 小时前
javaWeb后端开发之Linux项目部署3和Docker部署1
linux·服务器·前端·docker
AI云原生1 小时前
容器网络模型与服务发现:从踩坑到精通,Kubernetes 网络问题排查全指南
服务器·网络·云原生·容器·kubernetes·云计算·服务发现
石小千1 小时前
Docker-排查占用磁盘空间大问题
运维·docker·容器
仙柒4151 小时前
Docker 网络
运维·docker·容器