Skip to content

gitlab-runner-service executable not found in $PATH

Since upgrading to v1.5.0 trough omnibus upgrade, I have this error on each project build:

*** WARNING: Service runner-fcaf9204-project-74-concurrent-0-mysql probably didn't start properly.

API error (404): oci runtime error: exec: "gitlab-runner-service": executable file not found in $PATH

And the build fails:

$ mysql -u root -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" <<< "SET GLOBAL sql_mode = '';"
ERROR 2003 (HY000): Can't connect to MySQL server on '172.17.0.2' (111)
ERROR: Build failed: exit code 1

My docker info results:

Containers: 4
 Running: 0
 Paused: 0
 Stopped: 4
Images: 31
Server Version: 1.12.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 249
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null host bridge overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor seccomp
Kernel Version: 4.4.0-34-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 12
Total Memory: 31.32 GiB
Name: dedicore
ID: MJRD:QKMZ:IWMI:UK5E:W4OB:QM4D:LEAD:LMYG:5ZRU:625R:GKVH:TSKA
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
 127.0.0.0/8

My config.toml file:

concurrent = 6
check_interval = 0

[[runners]]
  name = "dedicore"
  url = "https://git.nexylan.net/ci"
  token = "fcaf920447d392bc50f5a201424ab7"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    privileged = false
    disable_cache = false
    volumes = ["/cache"]
    allowed_images = ["*", "*/*"]
  [runners.cache]
    Insecure = false

My .gitlab-ci.yml file:

image: nexylan/php-dev:7.0
services:
  - mysql:5.6
  - tutum/influxdb:0.10

variables:
  MYSQL_ALLOW_EMPTY_PASSWORD: '1'
  COMPOSER_FLAGS: --prefer-dist --no-progress
  SYMFONY_DEPRECATIONS_HELPER: weak

before_script:
  - cp app/config/php.ini /usr/local/etc/php
  # Disable strict mode. http://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_strict_all_tables
  - mysql -u root -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" <<< "SET GLOBAL sql_mode = '';"
  - export PATH=".:./node_modules/.bin:./bin:$HOME/.composer/vendor/bin:$PATH"
  # https://github.com/lexik/LexikJWTAuthenticationBundle/blob/master/Resources/doc/index.md#installation
  - mkdir -p app/shared/jwt ; openssl genrsa -out app/shared/jwt/private.pem ; openssl rsa -pubout -in app/shared/jwt/private.pem -out app/shared/jwt/public.pem
  # Behat api test are for localhost, not nginx. Better use env variable in the future.
  - sed -i "s/nginx:8001/localhost:8001/" behat.yml

stages:
  - lint
  - test

lint:
  stage: lint
  script:
    - npm install --no-spin
    - composer install ${COMPOSER_FLAGS}
    - bundle install
    - coffeelint web/assets/js/
    - ./app/console lint:yaml app --verbose
    - ./app/console lint:yaml src --verbose
    - find . -name '*.yml' -not -path './vendor/*' -not -path './node_modules/*' | xargs bundle exec yaml-lint
    - phplint 'src/**/*.php' 'app/**/*.php' '!app/cache/**' --suppress
    - php-cs-fixer fix --verbose --dry-run

test:
  stage: test
  script:
    - cp app/config/parameters-ci.yml app/config/parameters.yml
    - npm install --no-spin
    - bower update --allow-root --json=false --loglevel=action
    - composer install ${COMPOSER_FLAGS}
    - app/console fos:js-routing:dump
    - app/console assetic:dump
    - make test_data
    - ./app/console server:run localhost:8001 --env=test --quiet &
    - php -dzend_extension=xdebug.so bin/phpunit --coverage-text --colors=never
    - behat

I have absolutely no idea of where this is coming from...