Docker Compose up启动异常:无法启动全部声明服务求助
问题:执行docker-compose up时service服务无法启动
问题现象
执行docker-compose up命令时,仅service服务无法启动,其余服务可正常初始化,终端抛出变量未设置及服务配置无效的报错。
相关配置
docker-compose.yml 配置
version: '3' services: service: image: ${BUILD_IMAGE_TAG} environment: - SPRING_DATASOURCE_URL= jdbc:postgresql://db:5432/CricketScore db: image: postgres xray: image:
MakeFile 配置
PROJECT ?= **ProjectName** BUILD_TAG ?= build-local BUILD_IMAGE_TAG = $(PROJECT):$(BUILD_TAG) export BUILD_IMAGE_TAG
报错信息
WARN[0000] The "BUILD_IMAGE_TAG" variable is not set. Defaulting to a blank string. service "service" has neither an image nor a build context specified: invalid compose project
原因与解决方法
- 问题根源:docker-compose未读取到Makefile中导出的
BUILD_IMAGE_TAG环境变量,导致service服务的image字段为空,不符合compose配置要求;另外xray服务的image字段为空,也是无效配置,后续启动也会触发错误。 - 解决方法1(推荐):通过Makefile触发变量导出再启动服务,直接执行:
make && docker-compose up - 解决方法2:手动在当前终端导出环境变量后启动:
export BUILD_IMAGE_TAG="**ProjectName**:build-local" docker-compose up - 额外修复:补充xray服务的镜像名称(比如
image: some-xray-image),或者直接移除xray服务的配置,避免后续启动报错。
内容的提问来源于stack exchange,提问作者rahul.cs
相关产品推荐
相关产品推荐

