Shell脚本在gilab ci中的运行方式与本地运行方式不同

Shell脚本在gilab ci中的运行方式与本地运行方式不同,shell,docker,gitlab-ci-runner,Shell,Docker,Gitlab Ci Runner,我有一个shell脚本,用于拉取、重新标记、构建和推送我的docker图像,当我在本地运行它时,它工作得非常好。但是当CI运行它时,我得到一个错误:ash:stable-uknown操作数。我认为它与我的gilab runner使用的不同Linux分发版本有关。我在Ubuntu 18.04上运行。我不确定linux在CI上是什么,我是作为docker gitlab运行程序创建的。这是我的剧本: docker pull $BACKEND_DOCKER_IMAGE_PATH:latest &

我有一个shell脚本,用于拉取、重新标记、构建和推送我的docker图像,当我在本地运行它时,它工作得非常好。但是当CI运行它时,我得到一个错误
:ash:stable-uknown操作数
。我认为它与我的gilab runner使用的不同Linux分发版本有关。我在Ubuntu 18.04上运行。我不确定linux在CI上是什么,我是作为docker gitlab运行程序创建的。这是我的剧本:

docker pull $BACKEND_DOCKER_IMAGE_PATH:latest &> /dev/null

if [[ -n `docker images | grep "$BACKEND_DOCKER_IMAGE_PATH\b" | grep "latest\b"` ]];
  then
    docker tag $BACKEND_DOCKER_IMAGE_PATH:latest $BACKEND_DOCKER_IMAGE_PATH:stable;
fi

docker build . -f Dockerfile.api -t $BACKEND_DOCKER_IMAGE_PATH:latest
docker push $BACKEND_DOCKER_IMAGE_PATH:latest

if [[ -n `docker images | grep "$BACKEND_DOCKER_IMAGE_PATH\b" | grep "stable\b"` ]];
  then
    docker push $BACKEND_DOCKER_IMAGE_PATH:stable;
fi

有谁能给我一个提示,我可以做什么,以使这项工作或实现相同的结果不同?我觉得它与引用有关,但我不太理解shell。

所以调试脚本。添加
set-x
,看看会发生什么。我猜
BACKEND\u DOCKER\u IMAGE\u PATH
变量是空的。它不是空的,因为脚本的某些行在CI上也能正常工作