Как использовать drush как сервис в gitlab-ci.yml? - PullRequest
1 голос
/ 07 марта 2019

Согласно документации Я пытаюсь добавить drush в gitlab-ci.yml .

Это вершина моего gitlab-ci.yml :

image: tetraweb/php:7.1

services:
  - drush/drush:8

Но, видимо, служба не запускается должным образом:

Running with gitlab-runner 10.8.0 (079aad9e)
  on docker-runner 8a1645e0
Using Docker executor with image teamdesk/toolbox:7.2 ...
Starting service drush/drush:8 ...
Pulling docker image drush/drush:8 ...
Using docker image sha256:646ef48a637011d5bf97ed3021e280d583aa966e63fceea478d9be8dc5ea2902 for drush/drush:8 ...
Waiting for services to be up and running...

*** WARNING: Service runner-8a1645e0-project-35-concurrent-0-drush__drush-0 probably didn't start properly.

Health check error:
exit code 1

Health check container logs:
2019-03-07T16:51:12.703254779Z No HOST or PORT

Если я попытаюсь со следующими:

services:
  - name: drush/drush:8
    command: ["drush", "config-import -y"]

Iget:

Running with gitlab-runner 10.8.0 (079aad9e)
  on docker-runner e0df35ff
Using Docker executor with image teamdesk/toolbox:7.2 ...
Starting service drush/drush:8 ...
Pulling docker image drush/drush:8 ...
Using docker image sha256:646ef48a637011d5bf97ed3021e280d583aa966e63fceea478d9be8dc5ea2902 for drush/drush:8 ...
Waiting for services to be up and running...

*** WARNING: Service runner-e0df35ff-project-35-concurrent-0-drush__drush-0 probably didn't start properly.

Health check error:
exit code 1

Health check container logs:
2019-03-08T08:37:07.739033180Z No HOST or PORT

Service container logs:
2019-03-08T08:37:07.398595623Z The drush command 'drush config-import -y' could not be found.  Run      [error]
2019-03-08T08:37:07.398686996Z `drush cache-clear drush` to clear the commandfile cache if you have
2019-03-08T08:37:07.398695300Z installed new extensions.

Поскольку мне нужно запустить drush updatedb и drush config-import перед развертыванием на производственном сервере, я хотел бы использовать drush в качестве службы в gitlab-ci.yml .

1 Ответ

1 голос
/ 07 марта 2019

drush config-import -y - однократная команда;процесс, который он запускает, остановится, как только его работа будет выполнена.Так что это не сервис, и вы не можете поместить его в service: раздел .gitlab-ci.yml.Gitlab CI Runner ожидает, что эти службы никогда не остановятся, и будет жаловаться, если одна из служб умрет.

что вы можете сделать?

запустить drush в разделе script:.Для этого вы должны убедиться, что в образе докера tetraweb/php:7.1 доступна команда drush.

image: tetraweb/php:7.1  ## this image must have drush available

script:
  - drush config-import -y
  - drush updatedb
...
...