参考链接
转自 拓宽视野 - 基于ubuntu 18.04 dockerfile 文件内执行条件语句
- bash下的Dockerfile
FROM ubuntu:18.04
RUN ln -fs /bin/bash /bin/sh #切换 sh 为bash
RUN if [ -d "/opt/" ]; \
then \
export START='普通'; \
else \
echo "不存在"; \
fi \
&& echo $START \
&& if [ $HOME == '/root' ]; \
then \
echo "root用户"; \
else \
echo '非root用户'; \
fi
ubuntu 6.10以后 sh 默认软链接为 dash;
对于平时使用bash语法的小伙伴需要切换下ln -fs /bin/bash /bin/sh
- dash下的Dockerfile
FROM ubuntu:18.04
RUN dpkg-reconfigure dash
RUN if [ -d "/opt/" ]; \
then \
export START_MODE='app'; \
else \
echo "不存在"; \
fi \
&& echo $START_MODE \
&& if [ $HOME = '/root' ]; \
then \
echo "root用户"; \
else \
echo '非root用户'; \
fi \
&& ls -la /bin/sh
两种方式皆可