Today I updated my Gitlab CE to latest version 16.0.4 but after that I couldn't run pipeline on my old projects.
Installation type: Self-managed (sudo apt install gitlab-ce)
The version of the runner: 16.0.2
Executor: Docker
Default image: Python 3.8
I using docker a runner.
I set CI_DEBUG_TRACE: "true" in variables and getting below detail:
shell not found
Cleaning up project directory and file based variables
- set -o
- grep pipefail
- set -o pipefail
- set -o errexit
- set +o noclobber
- :
- eval '$'''rm''' -f /builds/xx/xxxxx.tmp/CI_SERVER_TLS_CA_FILE ' ++ rm -f /builds/xx/xxxxx.tmp/CI_SERVER_TLS_CA_FILE
- exit 0 ERROR: Job failed: exit code 1
My gitlab-ci file like:
stages:
- build
- test
variables:
CI_DEBUG_TRACE: "true"
build the car:
stage: build
script:
- ls
artifacts:
paths:
- build/
test the car:
stage: test
script:
- ls
I tried to run this file on a new project and it works perfectly.
I think Gitlab couldn't run the below command: rm -f /builds/xx/xxxxx.tmp/CI_SERVER_TLS_CA_FILE
Your error message "shell not found" is the primary clue.
The issue is that your default image,
python:3.8has noENTRYPOINTdefined but has aCMDdefined aspython3When GitLab tries to run this container, instead of getting a POSIX shell, it instead runs
pythoninterpreter. Hence the error message of a missing shell.You can work around this issue in the following manner:
Alternatively, you can use a different image which does define an
ENTRYPOINTor aCMDwhich is a valid shell.