You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Makefile自动调用适配版本的docker-compose或docker compose?

Makefile自动适配docker compose/docker-compose版本的调用方式

你写的这段判断逻辑没问题,它会自动检测系统里可用的docker compose命令形式:先尝试新版的docker compose,如果执行失败(说明是旧版环境),就 fallback 到docker-compose命令,最终把合适的命令存在DOCKER_COMPOSE变量里。

接下来只需要在Makefile的各个目标中,用$(DOCKER_COMPOSE)代替原来硬写的docker-compose或者docker compose即可。比如:

# 自动检测并设置docker compose命令
ifneq ($(shell docker compose version 2>/dev/null),)
  DOCKER_COMPOSE=docker compose
else
  DOCKER_COMPOSE=docker-compose
endif

# 启动服务
up:
	$(DOCKER_COMPOSE) up -d

# 停止并清理服务
down:
	$(DOCKER_COMPOSE) down -v

# 重新构建并启动
restart:
	$(DOCKER_COMPOSE) down -v
	$(DOCKER_COMPOSE) build
	$(DOCKER_COMPOSE) up -d

# 查看容器日志
logs:
	$(DOCKER_COMPOSE) logs -f

这样不管是你的新版环境,还是队友的旧版环境,运行make up、make down这些命令时,都会自动调用对应的docker compose命令,不用手动修改Makefile适配不同环境。

内容的提问来源于stack exchange,提问作者Zlatko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 14:24:56