6

我有以下工作在我的 gitlab-ci.yml 中构建图像

dockerize:
  stage: containerize
  before_script:
   - eval $($CONTEXT_SCRIPT_PATH)
  environment:
    name: $CONTEXT
    url: XXX
  image:
      name: gcr.io/kaniko-project/executor:debug-v0.23.0
      entrypoint: [""]  
  script:
      - echo "{\"auths\":{\"$CI_DOCKER_REGISTRY_URL\":{\"username\":\"$CI_DOCKER_REGISTRY_USER\",\"password\":\"$CI_DOCKER_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
      - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_DOCKER_REGISTRY_URL/portal/frontend:$CONTEXT-$CI_PIPELINE_IID --build-arg VERSION_TAG=$CONTEXT-$CI_PIPELINE_IID --build-arg COMMIT_TIME=$COMMIT_TIME
      - echo "Pushed to Registry - $CI_DOCKER_REGISTRY_URL/portal/frontend:$CONTEXT-$CI_PIPELINE_IID"
  retry: 2

在 before_script 部分中,设置了 env $CONTEXT。$CONTEXT_SCRIPT_PATH 在全局变量部分中设置:

variables:
  CONTEXT_SCRIPT_PATH: "${CI_PROJECT_DIR}/Scripts/get_context.sh"

但是如果 Job 正在运行,它就找不到脚本。

/busybox/sh: eval: line 90: /builds/portal/portal-frontend/Scripts/get_context.sh: not found

它适用于其他工作,那么 Kaniko 是否在某个单独的环境中运行?如何指定正确的路径?

4

0 回答 0