> ## Documentation Index
> Fetch the complete documentation index at: https://astronomer.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Deploy code to Astro

To run your code on Astro, you need to deploy it to a Deployment. You can deploy part or all of an Astro project to an Astro Deployment.

There are several options for deploying code to a Deployment:

* **Project deploys**: Run `astro deploy` to build every non-Dag file in your Astro project as a Docker image and deploy the image to all Airflow components in a Deployment. This includes your `Dockerfile`, plugins, and all Python and OS-level packages. Dags are deployed separately to each Airflow component through a sidecar container. See [Deploy a project image](/docs/astro/deploy-project-image).
* **Dag-only deploys**: Run `astro deploy --dags` to deploy only your Dag files to Astro. If you only need to deploy Dag changes, running this command is faster than running `astro deploy` since it doesn't require installing dependencies. See [Deploy Dags](/docs/astro/deploy-dags).
* **Image-only deploys**: Run `astro deploy --image` to build and deploy your Astro project configurations as a Docker image without deploying your Dags. This is useful if you have a multi-repo CI/CD strategy, and you want to deploy your Dags and project configurations from different repositories or storage buckets. See [Image-only deploys](/docs/astro/deploy-dags#trigger-an-image-only-deploy).
* **dbt deploys**: Run `astro deploy --dbt` to deploy only a dbt project to Astro. See [Deploy dbt projects to Astro](/docs/astro/deploy-dbt-project). You must use this command to deploy dbt projects to Astro.
* **Remote Execution project deploys**: For Deployments configured for [Remote Execution](/docs/astro/execution-mode#remote-execution), use `astro deploy` to build and deploy the Runtime (orchestration plane) image, and use `astro remote deploy` to build and push client images for your Remote Execution Agents. See [Initialize and deploy Remote Execution projects](/docs/astro/deploy-project-remote-execution) for full instructions.
* **GitHub integration deploys**: The Astronomer GitHub integration allows you to map a branch from your GitHub repository to directly deploy to Astro after you merge pull requests to the mapped branch. See [Deploy code with the Astro GitHub integration](/docs/astro/deploy-github-integration).

For each deploy option, you can either trigger the deploy manually or through CI/CD. CI/CD pipelines can include both image deploys and Dag-only deploys, and they can deploy to multiple different Deployments based on different branches in your git repository. See [CI/CD overview](/docs/astro/set-up-ci-cd).

<Note>For Dags running on Astro using Hosted [execution mode](/docs/astro/execution-mode), Astro configures a specialized versioned Dag bundle automatically, without any need for additional setup. Configuring custom Dag bundles and using several Dag bundles in the same Astro Deployment is only supported when using [Remote Execution mode](/docs/astro/execution-mode#remote-execution). For more information, see [Configure Dag bundles for Remote Execution](/docs/astro/remote-execution-configure-dag-sources).</Note>

If multiple deploys are triggered simultaneously or additional deploys are triggered while a deploy is still processing, whether manually or through CI/CD, the first deploy is processed and then the subsequent deploys are completed. This behavior is different from how Astro processes simultaneous code deploys with the [GitHub integration](/docs/astro/deploy-github-integration#deploys), which cancels the first deploy, and applies the most recent.

## See also

* [Create an Astro project](/docs/cli/v1.43/develop-project#create-an-astro-project)
* [Develop your Astro project](/docs/cli/v1.43/develop-project)
