Docker Compose报错:不支持'additional_contexts'选项求助
解决docker-compose中'additional_contexts'不被支持的问题
问题背景
执行docker-compose命令时出现如下错误:
ERROR: The Compose file './docker-compose.yml' is invalid because: services.api.build contains unsupported option: 'additional_contexts'
用户的docker-compose.yml配置:
version: '3.8' services: api: build: dockerfile: ./backend/Dockerfile context: ./ additional_contexts: - data=./backend args: - ENVIRONMENT=$ENVIRONMENT container_name: api environment: - MODE=$MODE depends_on: database: condition: service_healthy ports: - 9999:9999 networks: - backend restart: always
当前docker-compose版本:
docker-compose version 1.29.2, build unknown docker-py version: 5.0.3 CPython version: 3.11.6 OpenSSL version: OpenSSL 3.0.12 24 Oct 2023
问题原因
additional_contexts是Docker Compose v2.20.0及以上版本才引入的配置项,你当前使用的是旧版的docker-compose(v1系列的1.29.2),不支持该功能。
解决方法
方法一:升级到Docker Compose v2版本
Docker Compose v2已完全替代v1,且支持所有新特性,升级步骤:
- Linux系统可通过官方脚本安装:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose - Windows/macOS用户直接安装Docker Desktop,默认包含最新版Compose v2
- 验证升级:执行
docker compose version(注意是空格分隔),确认版本≥2.20.0
方法二:不升级版本,替换功能实现
如果暂时无法升级,可通过调整Dockerfile或构建上下文达到相同效果:
你的主上下文已经是./,其中包含./backend目录,直接在Dockerfile中使用相对路径复制文件即可,无需额外上下文:
# 替换成你实际需要的目标路径 COPY ./backend /app/data
内容的提问来源于stack exchange,提问作者rhuanpk
相关产品推荐
相关产品推荐

