Dockerfile变量的if else子句不起作用

Dockerfile变量的if else子句不起作用,docker,dockerfile,Docker,Dockerfile,以下内容在我的Dockerfile中不起作用: RUN if $SSH_PRIVATE_KEY -eq ""; then echo "SSH key is not set, aborting"; exit 1; else echo "SSH key is set"; fi 我得到以下错误: Step 4/15 : RUN if $SSH_PRIVATE_KEY -eq ""; then echo "SSH key is not set, aborting"; exit 1; else echo

以下内容在我的
Dockerfile
中不起作用:

RUN if $SSH_PRIVATE_KEY -eq ""; then echo "SSH key is not set, aborting"; exit 1; else echo "SSH key is set"; fi
我得到以下错误:

Step 4/15 : RUN if $SSH_PRIVATE_KEY -eq ""; then echo "SSH key is not set, aborting"; exit 1; else echo "SSH key is set"; fi
 ---> Running in 3bd29320f0e3
/bin/sh: -eq: command not found

我想检查
$SSH\u PRIVATE\u KEY
变量是否包含任何内容。

在变量周围添加引号(如果变量中可能有空格),只需使用
=
运算符进行字符串比较

在伯恩壳牌公司,这将是:

if [ "$SSH_PRIVATE_KEY" = "" ]; then echo "SSH key is not set, aborting"; exit 1; else echo "SSH key is set"; fi

你必须把方括号放在那里。。否则,测试空变量最好是
-z
开关

RUN if [ -z "$SSH_PRIVATE_KEY" ]; then echo "SSH key is not set, aborting"; exit 1; else echo "SSH key is set"; fi