tutorial run container compose mysql docker gitlab-ci gitlab-ci-runner

mysql - run - gitlab pipeline docker compose



Gitlab-ci+DinD+Mysql problema de permiso de servicios (0)

Creé dos trabajos de gitlab:

  • Unidad de prueba (utilizando una ventana acoplable registrada de php en gitlab)
  • Sonar (usando el servicio de docker para ejecutar "Letsdeal / docker-sonar-scanner")

Wen uso la siguiente configuración de gitlab-ci-multi-runner:

concurrent = 1 check_interval = 0 [[runners]] name = "name-ci" url = "https://uri/ci" token = "token" executor = "docker" [runners.docker] tls_verify = false image = "docker:latest" privileged = true disable_cache = false volumes = ["/cache"] shm_size = 0 [runners.cache]

El trabajo de la unidad de prueba funciona correctamente pero el trabajo de Sonar falló para los siguientes mensajes:

service runner-f66e3b66-project-227-concurrent-0-docker-wait-for-service did timeout 2017-07-05T16:13:18.543802416Z mount: mounting none on /sys/kernel/security failed: Permission denied 2017-07-05T16:13:18.543846406Z Could not mount /sys/kernel/security. 2017-07-05T16:13:18.543855189Z AppArmor detection and --privileged mode might break. 2017-07-05T16:13:18.543861712Z mount: mounting none on /tmp failed: Permission denied

Cuando cambio el parámetro de configuración ''privilegiado'' de ''runner.docker'' a falso. El trabajo de Sonar funciona, pero la Unidad de prueba falló:

service runner-f66e3b66-project-227-concurrent-0-mysql-wait-for-service did timeout 2017-07-05T15:08:49.178114891Z 2017-07-05T15:08:49.178257497Z ERROR: mysqld failed while attempting to check config 2017-07-05T15:08:49.178266378Z command was: "mysqld --verbose --help" 2017-07-05T15:08:49.178271850Z 2017-07-05T15:08:49.178276837Z mysqld: error while loading shared libraries: libpthread.so.0: cannot open shared object file: Permission denied

El param "privilegiado" tiene que ser verdadero para poder usar la ventana acoplable en acoplador. Pero no entiendo por qué hace que se rompa el permiso para servicios como MySQL.

Aquí está mi archivo gitlab-ci:

stage : - test-unit - analyse .php_job_template: &php_job_template image: custom_docker_image before_script: - eval $(ssh-agent -s) && ssh-add <(echo "$SSH_PRIVATE_KEY") - mkdir -p ~/.ssh && echo -e "Host */n/tStrictHostKeyChecking no/n/n" > ~/.ssh/config services : - mysql variables: MYSQL_DATABASE: blabla MYSQL_USER: blabla MYSQL_PASSWORD: blabla MYSQL_ROOT_PASSWORD: blabla test_phpunit_dev: <<: *php_job_template stage: test-unit script: - mysql -h mysql -u blabla -pblabla <<< "SET GLOBAL sql_mode = '''';" - php composer.phar install -q - php vendor/bin/phpunit -c tests/phpunit.xml sonar: stage: analyse image: docker:1.12.6 services: - docker:dind script: - docker run --rm -v `pwd`:/build -w /build letsdeal/sonar-scanner:2.7 scan -e

Si alguien sabe a quién arreglar eso, eres bienvenido. Gracias.