# Build When Amverum Cloud receives a build command, it searches the Code folder for the [configuration file](configuration/config-file.md) `amverum.yaml`. There are three possible situations: 1. **`amverum.yaml` is missing, but `Dockerfile` can be found.** - The image is built using `Dockerfile`. The process is described in [this section](configuration/docker.md). 2. **`amverum.yaml` and `Dockerfile` are both missing.** - The build fails. 3. **`amverum.yaml` is present.** - The application is built. ## Build process with `amverum.yaml` ![build_proc](../img/build_proc.png) Amverum Cloud reads the ``meta`` section from the amverum.yaml configuration file and looks for a suitable build tool in [the list of supported environments](supported-env.rst). A build tool is a ready-made image with a compiler/interpreter installed in it, which is used to create a build container. When a container is created, the ``code`` and ``artifacts`` folders are mounted in it. When the container is running, the build tool is launched for the selected environment with the parameters specified in the ``build`` section. The command is launched in the [``code`` folder](storage.md#code), after which the files necessary for the application to run are copied to the [``artifacts`` folder](storage.md#artifacts). During the build process, the application status will be "Build in progress". If the build is successful, the status will change to "Project is being deployed" and the Amverum cloud will automatically initialize the application launch process. If the build fails, you should refer to the [build logs](#build-logs). ```{eval-rst} .. admonition:: Important :class: warning The application is built in an additional container, which is priced in the same way as the application itself, which is why the current number of running instances may be greater than required. ``` ## Initializing the assembly ```{eval-rst} .. admonition:: Important :class: warning During the build, already running replicas of the application continue to run, which ensures that updates are rolled out with minimal DOS. ``` ### Automatic build The build starts automatically if a push was made to the `master` branch of the [git repository](git.rst) of Amverum. Also, the build of the application automatically starts after the application creation process is complete if the option of uploading files via the interface was selected. ### Manual build If you need to manually initialize the application build process, this can be done in two ways: 1. If the application has been built before, the "Rebuild project" button will be available in the toolbar on the application page ![rebuild](../img/rebuild.png) 2. If the project has not been built before or the above button is not active for some reason, you can go to the "Configuration" section. In this section, if the [configuration](configuration/config-file.md) is filled in, the "Build" button will be available at the bottom. ![configuration](../img/configuration.png) ## Build log To track the build process, you should use the log output console, which is located in the "Build log" tab. Loading logs may take some time and work with a delay. To load logs, you need to click the "Load history" button, which is located in the lower right corner of the log window and looks like a dial. ![load_logs](../img/load_logs.png) ```{eval-rst} .. admonition:: Important :class: warning If the build process has failed and the log remains empty after several attempts to load it, you should check that the `build` section of the configuration file is filled in correctly. ```