适用于GPU和非GPU版本的Dockerfile

适用于GPU和非GPU版本的Dockerfile,docker,docker-compose,gpu,nvidia-docker,Docker,Docker Compose,Gpu,Nvidia Docker,我有一个使用Dockerfile维护的项目。这是一个数据科学项目,因此docker可以在许多环境中使用,包括本地环境、云中环境、有无GPU环境 GPU和非GPU版本之间的差异非常小,仅此而已: FROM ubuntu:18.04 -> non-GPU FROM nvidia/cuda -> GPU 处理这种情况的最佳方法是什么 备注:我正在使用docker compose构建docker您可以在docker compose yml文件中使用多个docker文件,如下所示 ├

我有一个使用Dockerfile维护的项目。这是一个数据科学项目,因此docker可以在许多环境中使用,包括本地环境、云中环境、有无GPU环境

GPU和非GPU版本之间的差异非常小,仅此而已:

FROM ubuntu:18.04  -> non-GPU
FROM nvidia/cuda   -> GPU 
处理这种情况的最佳方法是什么


备注:我正在使用docker compose构建docker

您可以在docker compose yml文件中使用多个docker文件,如下所示

├── docker-compose.yml
├── GPU project
│   └── GPU.Dockerfile
└── NON-GPU project
    └── NONGPU.Dockerfile

此外,还可以通过提供文件.Dockerfile扩展名(而不是名称)在VS代码中突出显示语法,例如GPU.Dockerfile、NONGPU.Dockerfile等。

您可以在docker compose yml文件中使用多个docker文件,如下所示

├── docker-compose.yml
├── GPU project
│   └── GPU.Dockerfile
└── NON-GPU project
    └── NONGPU.Dockerfile

此外,还可以通过提供文件.Dockerfile扩展名(而不是名称)在VS代码中突出显示语法,例如GPU.Dockerfile、NONGPU.Dockerfile等。

似乎是一个很好的解决方案。有没有办法只生成这些“子项目”中的一个?根据docker文件生成配置,您可以在容器的“生成”部分中使用dockerfile:dockerfile alternate来选择需要的docker文件。您也可以在这里找到docker compose构建命令,官方文档非常棒。正是我需要的,非常感谢!这似乎是个好办法。有没有办法只生成这些“子项目”中的一个?根据docker文件生成配置,您可以在容器的“生成”部分中使用dockerfile:dockerfile alternate来选择需要的docker文件。您也可以在这里找到docker compose构建命令,官方文档非常棒。正是我需要的,非常感谢!