gitlab ci yml механизм изображений и сервисов? - PullRequest
0 голосов
/ 04 октября 2018

Я не понимаю механизм ключевых слов image и services в файле .gitlab-ci.yml.когда мы узнаем, на каком изображении выполняются команды ключевого слова script?

Когда я читаю документацию gitlabci, я хорошо понимаю теорию ключевых слов "изображение" и "услуги", так что я уженапример, провёл тесты и смог взаимодействовать с сервисом httpd с помощью wget, однако на практике я не могу понять, для чего этот образ?

Позвольте мне объяснить:)

Сначала я создал структуру с заданием, которое создает "uname -a", не объявляя никаких изображений:

job_scriptWithDefaultImage:
  stage: gitlabtest1
  script:
    - uname -a

Результат затем показывает мне "uname -a", запущенный на бегуне:

$ uname -a
Linux runner-b41b332f-project-9060-concurrent-0 4.4.0-104-generic #127-Ubuntu SMP Mon Dec 11 12:16:42 UTC 2017 x86_64 Linux

Затем я просто добавляю изображение в мою работу, указывая, что я хочу использовать alpine:

job_scriptWithAlpineImage:
  internship: gitlabtest2
  image: registry.hub.docker.com/library/alpine:latest
  script:
    - uname -a

Результат точно такой же, uname всегда запускается на бегуне вместо моегоальпийский ...

$ uname -a
Linux runner-9cade5e3-project-9060-concurrent-0 4.4.0-130-generic #156-Ubuntu SMP Thu Jun 14 08:53:28 UTC 2018 x86_64 GNU/Linux

Так что я совсем не понимаю:

  • Для чего мой образ?
  • Как выполнять команды в этом образев моем конвейере работа script секция?

1 Ответ

0 голосов
/ 04 октября 2018

Docker использует ядро ​​хоста.Как вы можете видеть по выводу uname -a, он дает информацию о машине бегуна.Вот почему независимо от контейнера вы получаете одинаковый вывод.Вы даже можете попробовать его на своей машине.

https://stackoverflow.com/a/31012367/4551937

Что касается Gitlab Runner, ваш service независим.Он будет прикреплен и предоставлен вашей работе, вызывая его, как если бы он выполнялся рядом с ним.

Ваша работа будет использовать изображение, указанное вами с тегом image, для запуска команд, перечисленных в script (Вы можете связать их).Если изображение не указано, оно примет изображение по умолчанию, определенное в конфигурации бегуна (возможно, Ubuntu).

...