是否可以ENV
根据构建的值在Dockerfile中有条件地设置变量ARG
?
例如:类似
ARG BUILDVAR=sad
ENV SOMEVAR=if $BUILDVAR -eq "SO"; then echo "hello"; else echo "world"; fi
更新:基于Mario答案的当前用法:
ARG BUILD_ENV=prod
ENV NODE_ENV=production
RUN if [ "${BUILD_ENV}" = "test" ]; then export NODE_ENV=development; fi
但是,先运行--build-arg BUILD_ENV=test
然后进入主机,我仍然可以
docker run -it mycontainer bin/bash
[root@brbqw1231 /]# echo $NODE_ENV
production
RUN if [ "$BUILD_ENV" = "test" ]; then export NODE_ENV=development; fi
。注意空格。不要删除它们