Обзор задачи
В статье рассматривается как быстро начать работу с werf, используя существующий в проекте Dockerfile. Мы выполним сборку Docker-образа приложения и загрузим его в Docker registry. В качестве примера приложения используется Linux Tweet App.
Требования
- Минимальные знания Docker и структуры Dockerfile.
- Установленные зависимости werf.
- Установленный multiwerf.
Выбор версии werf
Перед началом работы с werf необходимо выбрать версию werf, которую вы будете использовать. Для выбора актуальной версии werf в канале stable, релиза 1.0, выполним следующую команду:
. <(multiwerf use 1.1 stable)
Шаг 1: Конфигурация werf.yaml
Добавим файл werf.yaml
, описывающий конфигурацию сборки образа приложения с использованием существующего в проекте Dockerfile.
-
Склонируем репозиторий приложения Linux Tweet App:
git clone https://github.com/dockersamples/linux_tweet_app.git cd linux_tweet_app
-
В корневой папке приложения создадим файл
werf.yaml
со следующим содержимым:project: g-started configVersion: 1 --- image: ~ dockerfile: Dockerfile
Шаг 2: Сборка приложения
-
Соберём образ приложения, выполнив команду в корневой папке:
werf build --stages-storage :local
-
Запустим контейнер на основе собранного образа:
werf run --stages-storage :local --docker-options="-d -p 80:80"
-
Проверим, что приложение запустилось и отвечает корректно, открыв в web-браузере
http://localhost:80
либо выполнив:curl localhost:80
Шаг 3: Публикация образа в Docker registry
-
Запустим Docker registry локально:
docker run -d -p 5000:5000 --restart=always --name registry registry:2
-
Загрузим образ приложения в Docker registry, предварительно протегировав его тегом
v0.1.0
:werf publish --stages-storage :local --images-repo localhost:5000/g-started --tag-custom v0.1.0
Что дальше?
Вначале ознакомьтесь с документацией по теме:
- werf configuration file.
- Dockerfile Image: complete directive list.
- Build procedure.
- Publish procedure.
Либо переходите к знакомству со следующими примерами: