Рубрики
Uncategorized

Docker как набор инструментов

Docker, безусловно, является самым популярным программным обеспечением для контейнеризации приложений. Контейнеры делают его … с меткой Docker, DevOps.

Docker, безусловно, является самым популярным программным обеспечением для контейнеризации приложений. Контейнеры позволяют легко упаковать, выпускать, развернуть и выполнять стек приложений последовательным и повторяющимся образом. Тем не менее, есть нечто большее, чем упаковка и оркестренка стека приложений. Docker также можно использовать для создания кода, выполнения сценариев и выполнения шагов в конвейере CI/CD. Вы также можете использовать Docker, чтобы попробовать инструменты без необходимости установить их на машине.

Выполнение шагов CI/CD в контейнерах

Есть много инструментов сборки, таких как Дженкинс, Битбакет и Гитлаб, которые поддерживают выполнение этапов трубопровода в рамках контейнера Docker. Это имеет следующие преимущества:

  • Строите зависимости, такие как Node, Maven, Java и т. Д.
  • Команды приложений могут диктовать и поддерживать свои зависимости сборки
  • Разработчики могут создавать код точно так же, как сервер сборки

Обычно каждый шаг в трубопроводе может определить, какое изображение запустить как контейнер. Вот пример трубопровода Gitlab Yaml для шага сборки, который использует Maven:

image: maven:latest

stages:
  - build

build:
  stage: build
  script:
    - mvn package

Выполнение шагов сборки локально

Те же шаги сборки, которые запускаются во время трубопровода CI/CD, также могут выполняться локально. Это можно сделать с помощью Docker, запустив контейнер и отображение тома в расположении источника. Несколько примеров:

  • Docker run -rm -v $ (Pwd):/usr/src/app -W/usr/src/app
  • Docker run -rm -v $ (Pwd):/usr/src/app -w/usr/src/app maven: 3.5.3 mvn clean install
  • Docker run -rm -v $ (Pwd):/usr/src/app -w/usr/src/app gradle: 4.7 gradle clean build

Выполнение сценариев

Docker также можно использовать для выполнения других вещей, которые необходимы для выпуска, таких как сценарии или утилиты для миграции данных. Эти изменения могут быть упакованы как изображение Docker, которое версирует вместе с выпуском, для которого они необходимы. Это позволяет установить релиз быть повторяемым и тестируемым с помощью автоматизации. Упаковка и выполнение этих задач с помощью Docker обеспечивает возможность практически удалять необходимость в игровой книге установки, потому что эти шаги авторизуются в изображении Docker. Если сценарии упакованы в изображение под названием «Утилизаторы миграции», вы можете запустить их и даже передать их параметрам. Например, если вы хотите выполнить скрипт с именем «runfilemigration.sh prod» в вашем изображении «миграционные утилизации», вы бы выполнили следующее:

  • Docker run-rm -v local-dir:/path/to/files.sh Migration-utils Prod

Обратите внимание, как, когда вы переопределяете точку записи, аргумент «Prod» теперь отправляется в качестве аргумента в определенную точку записи. В этом примере вы указываете том, который представляет, где файлы, к которому необходим сценарий.

Экспериментируя с инструментами

Недавно я посещал вебинар, который прошел демонстрацию инструмента, который выполняет статический анализ камердетов. Инструмент казался довольно интересным, и они предоставили ссылку на местонахождение проекта на GitHub. В пределах чтения у него были различные инструкции по установке для установки инструмента. Были параметры для Windows, Linux, Mac (Home Brew) и изображения Docker. Я немедленно копировал/вставил инструкции для Docker Run командовать и изменить несколько вещей для моего конкретного местоположения файла. Затем я пошел на поиски аналогичных инструментов, чтобы сравнить и сопоставить вывод и посмотреть, понравилась ли мне функциональность одного над другим. В каждом случае, если они предоставляют изображение Docker, я просто запускаю это. Это обеспечивает два преимущества. Во -первых, мне не нужно устанавливать каждый из этих инструментов на мою машину, а затем удалять их, если они мне не нравятся. Другое состоит в том, что если я выполняю вещи через Docker Run Команда, и я получаю различные параметры и настройки так, как они мне нравятся, я могу легко преобразовать эту команду в соответствующее объявление в файле CI.

Вывод

Существует гораздо больше примеров использования Docker для вещей, отличных от создания изображений и запуска контейнерных приложений. Погода для CI/CD, выполнения сценариев или экспериментов с инструментами или чем -то еще, вы можете подумать, не стесняйтесь использовать изображение Docker в следующий раз, когда вы хотите установить и/или получить что -то работу.

Оригинал: «https://dev.to/edlegaultle/docker-as-a-toolbox-26jo»