Для настройки сборки и запуска проекта можно создать файл
`amvera.yml` или `amvera.yaml` в корне репозитория.
Если файл конфигурации отсутствует, то Amvera будет
искать файл `Dockerfile` в одной из следующих локаций:
- `amvera/Dockerfile`
- `Dockerfile`
- `docker/Dockerfile`
- `deploy/Dockerfile`
- `deployment/Dockerfile`
Если `Dockerfile` будет найден, он будет использоваться для сборки.
Если `Dockerfile` также не будет найден, сборка завершится провалом.
В дальнейшем на файл `amvera.yml` или `amvera.yaml` для
определенности будем ссылаться как `amvera.yml`.
Файл `amvera.yml` состоит из трех секций.
Секция `meta` определяет общую информацию о сборке,
такую как окружение и инструменты сборки.
Пример секции `meta` для JVM приложения, собираемого при помощи Maven:
```
meta:
environment: jvm
toolchain:
name: maven
version: 17
```
Подробнее о сборке JVM приложений с помощью
Maven в сервисе Amvera можно прочитать
[здесь](https://docs.amvera.ru/books/amvera/page/jvm-maven).
Секция `build` определяет параметры, необходимые для сборки приложения.
Для разных окружений эти параметры разные.
Про параметры для вашего окружения можно прочитать
в соответствующей статье в этой документации.
Если указывать параметры сборки не нужно,
то секцию `build` можно опустить.
В нашем примере сборки JVM приложения при помощи
Maven все параметры build являются необязательными.
Однако если нужно указать дополнительные параметры компиляции,
сделать это можно следующим образом:
```
build:
args: -Dserver.port=80 -Pproduction
```
Секция `run` определяет параметры, необходимые для
запуска приложения. Аналогично сборке для разных
окружения эти параметры разные и описаны в
соответствующей статье в этой документации.
Если указывать параметры запуска не нужно, то секцию `run` можно опустить.
В нашем примере сборки JVM приложения при помощи Maven,
в секции run необходимо как минимум указать путь до jar-файла
относительно корня проекта:
```
run:
jarName: bag-end.jar
```
Так, весь файл `amvera.yml` для нашего примера выглядит следующим образом:
```
meta:
environment: jvm
toolchain:
name: maven
version: 17
build:
args: -Dserver.port=80 -Pproduction
run:
jarName: bag-end.jar
```
Так как формат файла конфигурации YAML,
секции можно указывать в любом порядке.
На данный момент поддерживаются следующие окружения:
- [Docker](https://docs.amvera.ru/books/amvera/page/docker)
- JVM
- [Maven](https://docs.amvera.ru/books/amvera/page/jvm-maven)
- [Gradle](https://docs.amvera.ru/books/amvera/page/jvm-gradle)
- Python
- [pip](https://docs.amvera.ru/books/amvera/page/python-pip)
- Node.JS
- [Server](https://docs.amvera.ru/books/amvera/page/nodejs-server)
- [Browser](https://docs.amvera.ru/books/amvera/page/nodejs-browser)
Со временем список поддерживаемых окружений и
инструментов сборки будет пополняться.
Если вы хотите, чтобы мы добавили поддержку вашего инструментария,
свяжитесь с нами по e-mail: [support@amvera.ru](mailto:support@amvera.ru).
Мы зададим вам несколько вопросов о вашем инструментарии
и реализуем поддержку в ближайшее время.