使用ramdisk更快地构建Dockerfile

使用ramdisk更快地构建Dockerfile,docker,docker-compose,dockerfile,tmpfs,Docker,Docker Compose,Dockerfile,Tmpfs,我们运行一个构建过程,从一个大型代码库编译多个工件 在一个体面的带有SSD的spec i7上,这需要约20分钟,但是当我转向使用tmpfs时,时间会下降到约3分钟 我们正在使用docker compose打包构建过程,以确保所有开发人员获得相同的构建环境,但也希望他们能够在没有更改的情况下使用docker缓存中的工件运行项目。感知到的构建时间是一个问题,但我们也担心磁盘驱动器的磨损,因为每个构建过程的写容量都大于1Gb 是否有办法在Dockerfile“RUN”命令中装载tmpfs(而不是在运行

我们运行一个构建过程,从一个大型代码库编译多个工件

在一个体面的带有SSD的spec i7上,这需要约20分钟,但是当我转向使用tmpfs时,时间会下降到约3分钟

我们正在使用docker compose打包构建过程,以确保所有开发人员获得相同的构建环境,但也希望他们能够在没有更改的情况下使用docker缓存中的工件运行项目。感知到的构建时间是一个问题,但我们也担心磁盘驱动器的磨损,因为每个构建过程的写容量都大于1Gb

是否有办法在Dockerfile“RUN”命令中装载tmpfs(而不是在运行容器阶段)

我已尝试使用mount(如下),但获得的权限被拒绝:

RUN mkdir -p /core_src && mount -t tmpfs /dev/foo /core_src

实验性前端到buildkit允许

您的Dockerfile看起来像:

# syntax=docker/dockerfile:experimental
FROM your_base_image
RUN --mount=type=tmpfs,target=/core_src compile_command_here
然后,要使用compose启用buildkit,可以设置两个环境变量:

export DOCKER_BUILDKIT=1 # or configure in daemon.json
export COMPOSE_DOCKER_CLI_BUILD=1
在/etc/docker/daemon.json中启用buildkit如下所示:

{ "features": { "buildkit": true } }
然后需要重新加载dockerd才能使用它(
systemctl reload docker