Docker - 需要特定的docker服务版本

时间:2018-03-20 16:10:19

标签: docker docker-compose

目前我有一个错误,可能在我的代码中,也许在docker基础图像中,甚至可能在docker本身,但我确信,我的应用程序在docker-ce 17.09上运行良好,并在一段时间后挂断docker-ce 17.12
有没有办法在Dockerfiledocker-compose.yml中指定docker版本,因此在尝试在不支持的docker版本上构建它时,app会抛出错误。
我知道这不是一个好主意,我需要找出这个错误,但对于临时解决方法,这个错误信息对我来说已经足够了。

1 个答案:

答案 0 :(得分:1)

我认为没有码头工人可以直接接近它。但是您可以将带有ARG的docker版本传递给Dockerfile,然后添加RUN命令来检查它是否是所需的版本。要取消构建过程,您必须exit使用其他数字而不是0。

使用此行构建您的图像

docker_version=`docker version --format "{{.Server.Version}}"` \
&& docker build -t my_image --build-arg DOCKER_VERSION=$docker_version . 

然后在 Dockerfile 中检查是否需要docker version

FROM debian

ARG DOCKER_VERSION

RUN [[ $DOCKER_VERSION == "17.12.0-ce" ]] && echo "YES" ||  exit 1