如何在Docker Compose的服务构建指令中启用GPU?
Docker Compose构建阶段启用GPU的解决方案
Docker Compose的build块确实没提供原生的GPU配置选项,毕竟构建环节默认用的是常规Docker构建环境,不会自动挂载GPU设备。要让构建过程用上GPU,有两个实用方案:
方案1:手动用Docker命令带GPU支持构建,再在Compose里用镜像
先单独构建带GPU支持的镜像,再修改Compose配置直接引用:
- 执行构建命令:
docker build --gpus all -t my-app-image .
- 更新docker-compose.yml:
version: '3' services: app: image: my-app-image shm_size: 4gb # 如果运行时也需要GPU,保留这段配置 deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] # ...
方案2:用nvidia-docker配合BuildKit在Compose里完成构建
要是想保留在Compose里触发构建的流程,可以借助nvidia-docker和BuildKit实现:
- 先确保系统装了nvidia-docker工具
- 调整docker-compose.yml的build参数:
version: '3' services: app: build: context: . args: - NVIDIA_VISIBLE_DEVICES=all shm_size: 4gb deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] # ...
- 执行构建时指定用BuildKit和nvidia-docker:
DOCKER_BUILDKIT=1 docker-compose build --build-arg NVIDIA_VISIBLE_DEVICES=all
注意点
- 构建阶段要用到GPU,核心是让构建容器能访问GPU设备,所以必须依赖nvidia-docker runtime或者BuildKit的GPU支持
- Docker Compose的
build字段本身不支持GPU配置,只能通过上述两种方式绕开这个限制
内容的提问来源于stack exchange,提问作者Da Tong
相关产品推荐
相关产品推荐

