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