# Builder

## Docker

**Description**: Uses a Dockerfile to build the application.

**Details**:

* **Usage**: Select Docker if your project includes a Dockerfile that specifies how to build your application.
* **Configuration**: Ensure that the Dockerfile is located in the specified Root Directory or adjust the Root Directory accordingly.
* **Example**:
  * A typical Dockerfile might include:

    ```dockerfile
    FROM node:14
    WORKDIR /app
    COPY . .
    RUN npm install
    CMD ["npm", "start"]
    ```

**Additional Information**: Docker is a popular containerization tool that allows you to package your application and its dependencies into a container. This container can be run consistently on different environments.

## Nixpacks

**Description**: Automatically detects and builds the application based on source code and configuration files.

**Details**:

* **Usage**: Select Nixpacks if you prefer an automated build configuration that detects your application's language and dependencies.
* **Configuration**: Ensure that your project includes the necessary configuration files (e.g., package.json for Node.js, requirements.txt for Python).
* **Example**: No specific configuration required in the Root Directory, as Nixpacks automatically detects the environment.

**Additional Information**: Nixpacks provides a convenient way to build applications without needing a Dockerfile. It supports various languages and frameworks by detecting the appropriate build environment.

## Pack

**Description**: Uses Cloud Native Buildpacks to build your application into a container image.

**Details**:

* **Usage**: Select Pack if you want to use Cloud Native Buildpacks, which provide a higher-level abstraction over Dockerfiles for building applications.
* **Configuration**:
  * Ensure your project structure and configuration files are compatible with Buildpacks.
  * After selecting Pack, choose a provider (Heroku, Paketo, Google Cloud Platform) that best suits your application's needs.
* **Example**:
  * A typical command to build an image using Pack:

    ```sh
    pack build myapp --builder paketobuildpacks/builder:base
    ```

**Additional Information**: Pack is a CLI tool that leverages Buildpacks to transform your application source code into container images. It's designed to simplify the containerization process and provide a consistent build environment.

### Provider for Pack

#### **Heroku**

**Description**: Uses Heroku Buildpacks to build the application.

**Details**:

* **Usage**: Select Heroku if your project is designed to be compatible with Heroku Buildpacks.
* **Additional Information**: Heroku Buildpacks are a collection of scripts for compiling apps on the Heroku platform. They support multiple languages and frameworks.

#### **Paketo**

**Description**: Uses Paketo Buildpacks to build the application.

**Details**:

* **Usage**: Select Paketo for an open-source implementation of Buildpacks that can be used in various environments.
* **Additional Information**: Paketo Buildpacks provide a set of extensible, modular buildpacks for building applications.

#### **Google Cloud Platform**

**Description**: Uses Google Cloud Buildpacks to build the application.

**Details**:

* **Usage**: Select Google Cloud Platform if you are building applications for deployment on Google Cloud services.
* **Additional Information**: Google Cloud Buildpacks are designed to support applications running on Google Cloud services, ensuring compatibility and optimized performance.

---

**Documents**

- [Changelog](https://documentation.cloud-station.io/s/ce6e8846-8aec-4337-a850-5188b6dc6d6e/doc/changelog-r4OVtpiRA5)
- [CloudStation Tutorials](https://documentation.cloud-station.io/s/ce6e8846-8aec-4337-a850-5188b6dc6d6e/doc/cloudstation-tutorials-brnm0gaWUb)
- [Documentation](https://documentation.cloud-station.io/s/ce6e8846-8aec-4337-a850-5188b6dc6d6e/doc/documentation-4X2U9io3hK)
- [Understanding CloudStation Plans](https://documentation.cloud-station.io/s/ce6e8846-8aec-4337-a850-5188b6dc6d6e/doc/understanding-cloudstation-plans-UqY29FsY4w)