Gitlab CI runner shell grep无法拿到变量
我设置的变量有:
variables:
IMAGE_ID: registry.xxx.xxx:5000/xxx/xxx
DOCKER_LOCAL_PORT: 10000
这是我的job yml
docker_local:
variables:
GIT_STRATEGY: fetch
stage: build
when: manual
before_script:
- sudo systemctl restart docker
script:
- echo $IMAGE_ID
- echo $DOCKER_LOCAL_PORT
- docker ps | grep $IMAGE_ID
- docker ps | grep $DOCKER_LOCAL_PORT
- sudo chown -R gitlab-runner /home/gitlab-runner/
- id=$(docker ps | grep $IMAGE_ID | grep $DOCKER_LOCAL_PORT | awk '{print $1}'); if [ $id ]; then docker kill $id && docker rm $id; fi
- id=$(docker images | grep $IMAGE_ID | awk '{print $3}'); if [ $id ]; then sudo docker rmi --force $id; fi
- mvn $MAVEN_CLI_OPTS clean package -Dmaven.test.skip=true
- rm -rf ${CI_PROJECT_DIR}/docker-temp/
- mkdir -p ${CI_PROJECT_DIR}/docker-temp/
- cp ${CI_PROJECT_DIR}/target/*.war ${CI_PROJECT_DIR}/docker-temp/
- cp ${CI_PROJECT_DIR}/Dockerfile ${CI_PROJECT_DIR}/docker-temp/
- cd ${CI_PROJECT_DIR}/docker-temp/
- docker build --no-cache --force-rm -t $IMAGE_ID:${CI_COMMIT_SHORT_SHA} ${CI_PROJECT_DIR}/docker-temp/
- docker run -p $DOCKER_LOCAL_PORT:8080 -d $IMAGE_ID:${CI_COMMIT_SHORT_SHA}
tags:
- xxx
其中
- echo $IMAGE_ID
- echo $DOCKER_LOCAL_PORT
- docker ps | grep $IMAGE_ID
- docker ps | grep $DOCKER_LOCAL_PORT
这四行脚本是我为了测试单独写的, 目前是
- echo $IMAGE_ID
- echo $DOCKER_LOCAL_PORT
可输出正确的值
但一旦执行到
- docker ps | grep $IMAGE_ID
- docker ps | grep $DOCKER_LOCAL_PORT
时就会报错, 但具体原因不明.
报错截图(给项目关键字打码了)
目前gitlab-runner
已经在docker组下了.
使用gitlab-runner
账号连接服务器执行
docker ps | grep $IMAGE_ID
docker ps | grep $DOCKER_LOCAL_PORT
均可成功, 但以gitlab ci的方式执行便失败了.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论