Skip to content

Commit

Permalink
Merge pull request #470 from Qovery/chore_remove_buildpack
Browse files Browse the repository at this point in the history
chore: remove buildpack support
  • Loading branch information
jul-dan authored Sep 18, 2024
2 parents 7d05ba2 + 44e97a8 commit 30ed208
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 184 deletions.
34 changes: 4 additions & 30 deletions website/docs/using-qovery/configuration/application.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
last_modified_on: "2024-08-27"
last_modified_on: "2024-09-18"
title: "Application"
description: "Learn how to configure your Application on Qovery"
---
Expand Down Expand Up @@ -67,7 +67,7 @@ If you want to deploy an application from a Git Repository you will have to sele
- Git Repository: Select the git provider hosting your code (it can be hosted on GitHub, GitLab or Bitbucket). You can add a new git access by clicking on `New git access`.
- Branch: Select branch that Qovery should use to deploy your application
- Root Application Path: base folder in which the application resides in your repository
- Build Mode: choose between Docker or Buildpack. For more information, go to [this section][docs.using-qovery.configuration.application#build-mode]
- Build and deploy: configure your Dockerfile location. For more information, go to [this section][docs.using-qovery.configuration.application#build-and-deploy]

If you want to deploy an application from a Container Registry you will have to select:
- Registry: select the container registry storing the image of your application. You can add a new container registry by clicking on `New registry`.
Expand Down Expand Up @@ -239,32 +239,7 @@ Make sure that the image tag used are unique (do not use "latest", "dev", "maste
<img src="/img/configuration/application/app-general-registry.png" alt="General Settings Git" />
</p>

#### Build Mode
This option is available only if you have selected "Git Repository" as source
#### Option 1: Buildpacks

To simplify the application build for the developer, Qovery supports [Buildpacks](https://buildpacks.io) out of the box. Buildpacks determine the build process for an app and which assets and runtimes should be made available to your code at runtime. If your complex apps are running multiple languages, you can also use multiple buildpacks within a single app.
Meaning, as a developer, you don't need to write a `Dockerfile` to build and run your app. Qovery Buildpacks takes care of everything for you.

**Supported languages**

| language | version |
|------------|---------|
| Node.JS | any |
| Clojure | any |
| Python | any |
| Java | any |
| Gradle | any |
| JVM | any |
| Grails | any |
| Scala | any |
| Play | any |
| PHP | any |
| Go | any |

You don't find a cool language? [Suggest us to support it][urls.qovery_roadmap]

#### Option 2: Dockerfile
#### Build and Deploy

If your job is built via the Qovery CI (Source="Git Repository"), this section allows you to define the Dockerfile location.

Expand Down Expand Up @@ -575,7 +550,7 @@ In the application overview, click on the `3 dots` button and remove the applica
[docs.qovery.deployment.deploying-with-auto-deploy]: /docs/using-qovery/deployment/deploying-with-auto-deploy/
[docs.using-qovery.configuration.advanced-settings#network-settings]: /docs/using-qovery/configuration/advanced-settings/#network-settings
[docs.using-qovery.configuration.advanced-settings]: /docs/using-qovery/configuration/advanced-settings/
[docs.using-qovery.configuration.application#build-mode]: /docs/using-qovery/configuration/application/#build-mode
[docs.using-qovery.configuration.application#build-and-deploy]: /docs/using-qovery/configuration/application/#build-and-deploy
[docs.using-qovery.configuration.application-health-checks]: /docs/using-qovery/configuration/application-health-checks/
[docs.using-qovery.configuration.clusters#use-custom-domain-and-wildcard-tls-for-the-whole-cluster-beta]: /docs/using-qovery/configuration/clusters/#use-custom-domain-and-wildcard-tls-for-the-whole-cluster-beta
[docs.using-qovery.configuration.environment-variable#connecting-to-a-database]: /docs/using-qovery/configuration/environment-variable/#connecting-to-a-database
Expand All @@ -595,4 +570,3 @@ In the application overview, click on the `3 dots` button and remove the applica
[docs.using-qovery.interface.cli]: /docs/using-qovery/interface/cli/
[guides.advanced.monorepository]: /guides/advanced/monorepository/
[guides.getting-started.setting-custom-domain]: /guides/getting-started/setting-custom-domain/
[urls.qovery_roadmap]: https://roadmap.qovery.com/roadmap
29 changes: 2 additions & 27 deletions website/docs/using-qovery/configuration/application.md.erb
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ If you want to deploy an application from a Git Repository you will have to sele
- Git Repository: Select the git provider hosting your code (it can be hosted on GitHub, GitLab or Bitbucket). You can add a new git access by clicking on `New git access`.
- Branch: Select branch that Qovery should use to deploy your application
- Root Application Path: base folder in which the application resides in your repository
- Build Mode: choose between Docker or Buildpack. For more information, go to [this section][docs.using-qovery.configuration.application#build-mode]
- Build and deploy: configure your Dockerfile location. For more information, go to [this section][docs.using-qovery.configuration.application#build-and-deploy]

If you want to deploy an application from a Container Registry you will have to select:
- Registry: select the container registry storing the image of your application. You can add a new container registry by clicking on `New registry`.
Expand Down Expand Up @@ -227,32 +227,7 @@ Make sure that the image tag used are unique (do not use "latest", "dev", "maste
<img src="/img/configuration/application/app-general-registry.png" alt="General Settings Git" />
</p>

#### Build Mode
This option is available only if you have selected "Git Repository" as source
#### Option 1: Buildpacks

To simplify the application build for the developer, Qovery supports [Buildpacks](https://buildpacks.io) out of the box. Buildpacks determine the build process for an app and which assets and runtimes should be made available to your code at runtime. If your complex apps are running multiple languages, you can also use multiple buildpacks within a single app.
Meaning, as a developer, you don't need to write a `Dockerfile` to build and run your app. Qovery Buildpacks takes care of everything for you.

**Supported languages**

| language | version |
|------------|---------|
| Node.JS | any |
| Clojure | any |
| Python | any |
| Java | any |
| Gradle | any |
| JVM | any |
| Grails | any |
| Scala | any |
| Play | any |
| PHP | any |
| Go | any |

You don't find a cool language? [Suggest us to support it][urls.qovery_roadmap]

#### Option 2: Dockerfile
#### Build and Deploy

If your job is built via the Qovery CI (Source="Git Repository"), this section allows you to define the Dockerfile location.

Expand Down
8 changes: 1 addition & 7 deletions website/guides/tutorial/how-to-write-a-dockerfile.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
last_modified_on: "2022-05-04"
last_modified_on: "2024-09-18"
$schema: "/.meta/.schemas/guides.json"
title: How to write a Dockerfile
description: How to write your first Dockerfile in order to deploy your application with Qovery
Expand All @@ -13,12 +13,6 @@ import Jump from '@site/src/components/Jump';

import Assumptions from '@site/src/components/Assumptions';


With Qovery, there are two ways to build and deploy your application:

1. Without a Dockerfile in your repository: your application is built with [Buildpacks](https://docs.qovery.com/docs/using-qovery/configuration/application/#option-1-buildpacks)
2. With a Dockerfile: sometimes Buildpacks won't fit your specific setup, and you'll have to write your Dockerfile.

In this article, we'll see, step by step, how to quickly write a proper Dockerfile for any application you would like to deploy.

<Assumptions name="guide">
Expand Down
6 changes: 0 additions & 6 deletions website/guides/tutorial/how-to-write-a-dockerfile.md.erb
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,6 @@ hide_pagination: true
---
import Assumptions from '@site/src/components/Assumptions';


With Qovery, there are two ways to build and deploy your application:

1. Without a Dockerfile in your repository: your application is built with [Buildpacks](https://docs.qovery.com/docs/using-qovery/configuration/application/#option-1-buildpacks)
2. With a Dockerfile: sometimes Buildpacks won't fit your specific setup, and you'll have to write your Dockerfile.

In this article, we'll see, step by step, how to quickly write a proper Dockerfile for any application you would like to deploy.

<Assumptions name="guide">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
last_modified_on: "2024-08-12"
last_modified_on: "2024-09-18"
$schema: "/.meta/.schemas/guides.json"
title: Migrate your application from Heroku to AWS
description: Guide on how to migrate all your applications from Heroku to AWS with your databases
Expand All @@ -22,7 +22,7 @@ This guide also work for migrating your application from Heroku to GCP, Azure, S

This guide describes how to migrate your application running on Heroku to AWS with Qovery. It covers all required steps you need to take to deploy your application on AWS and transfer your data from Heroku Postgres to the database managed by AWS via Qovery.

> Please contact us via [our forum][urls.qovery_forum] if you experience any problem while migrating from Heroku to AWS with Qovery.
> We have created a new AI agent capable of migrating from Heroku to AWS, GCP, Scaleway or Azure in a few clicks. Check our [announcement here](https://www.qovery.com/blog/open-source-devops-ai-agent--effortless-migration-from-heroku-to-aws/?utm_campaign=migration-ai-agent-email).
<Assumptions name="guide">

Expand All @@ -42,43 +42,21 @@ This guide describes how to migrate your application running on Heroku to AWS wi

## Migration Steps

1. [Use Buildpacks or Create your Dockerfile](#1-create-your-dockerfile-or-use-buildpacks)
1. [Create your Dockerfile](#1-create-your-dockerfile)
2. [Create resources on Qovery](#2-create-resources-on-qovery)
3. [Configure Environment Variables and Secrets](#3-configure-your-environment-variables-and-secrets)
4. [Copy data from your Heroku databases to your AWS databases](#4-copy-data-from-your-heroku-databases-to-your-aws-databases)
5. [Deploy your apps](#5-deploy-your-apps-)
6. [FAQ by Heroku users](#faq-by-heroku-users)

## 1. Create your Dockerfile or Use Buildpacks
## 1. Create your Dockerfile

Qovery supports two ways to build and run your application coming from Heroku:

1. Buildpacks
2. Docker

Both options build a container image that is runnable by a container engine (E.g. Docker). Qovery runs containers on Kubernetes.

Choose the option that better fits you:

<Tabs
centered={true}
className={"rounded"}
defaultValue={"buildpacks"}
placeholder="Use Buildpacks or Create your Dockerfile"
select={false}
size={null}
values={[{"group":"Platforms","label":"Use Buildpacks","value":"buildpacks"},{"group":"Platforms","label":"Create your Dockerfile","value":"dockerfile"}]}>

<TabItem value="dockerfile">

> Are you familiar with Dockerfile? If not, I do recommend reading [this article][guides.tutorial.how-to-write-a-dockerfile].
Here we will create our Dockerfiles to build and run our applications. Qovery will handle the build and the run of your applications, but need to have at least a Dockerfile to do it.

### Choose your Dockerfile template

To get started,

#### Find Dockerfile template

Pick one Dockerfile template according to the programming language or framework you are using for your app:
Expand Down Expand Up @@ -358,30 +336,6 @@ git push origin

If you have multiple applications to deploy, create a Dockerfile for each of them.

</TabItem>

<TabItem value="buildpacks">

[Buildpacks](https://buildpacks.io/) automatically detects the language and the framework your application is using. Buildpacks builds and runs your app. Here is the list of [supported languages and frameworks][docs.using-qovery.configuration.application#option-1-buildpacks].

<Alert type="warning">

We do recommend using Docker to keep the full control of what's going on behind the scene. Buildpacks is a great technology but difficult to debug when something goes wrong. You can try deploying your apps on AWS with Qovery with Buildpacks, if you do not succeed, we do recommend switching for Docker.

</Alert>

### Limitations

Here are some limitations due to our Buildpacks implementation:

* Qovery Buildpacks does not support Procfile with multiple commands at the moment.
* Qovery does not support custom Buildpacks.

Those limitations will be solved in the coming months.

</TabItem>

</Tabs>

## 2. Create resources on Qovery

Expand All @@ -408,7 +362,6 @@ Steps:
4. Create an application and give it a name (you can give the name of your repo if you have no idea)
5. Select your app repository from your GitHub, GitLab or Bitbucket.
6. Select the branch you want to deploy.
7. Select the Build mode for `Buildpacks` or `Dockerfile` according to what you want.
8. Specify the local listening port of your application.
9. Click on "create"

Expand Down Expand Up @@ -475,12 +428,6 @@ I recommend reading our [Getting Started with Environment Variables][guides.gett

To extract your environment variables from Heroku, we recommend using the [Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli) and exporting all the environment variables and secrets in an .env (dot env) file. Qovery supports the [import of a dot env file][guides.tutorial.import-your-environment-variables-with-the-qovery-cli] via the Qovery web interface and the Qovery CLI.

<Alert type="warning">

If you use Buildpacks for one of your app AND you have indicated a local listening port of your application, you will need to add an environment variable `PORT` with the value of your port to make your application starting properly. Otherwise, Qovery will fail to deploy your app!

</Alert>

[Export your environment variable via the Heroku CLI](https://devcenter.heroku.com/articles/config-vars#view-current-config-var-values) with the command:

```shell
Expand Down Expand Up @@ -660,7 +607,6 @@ Congrats! You have migrated from Heroku to AWS. Feel free to check out our [foru
[docs.getting-started.install-qovery]: /docs/getting-started/install-qovery/
[docs.useful-resources.faq]: /docs/useful-resources/faq/
[docs.using-qovery.configuration.application#auto-scaling]: /docs/using-qovery/configuration/application/#auto-scaling
[docs.using-qovery.configuration.application#option-1-buildpacks]: /docs/using-qovery/configuration/application/#option-1-buildpacks
[docs.using-qovery.configuration.database#general]: /docs/using-qovery/configuration/database/#general
[docs.using-qovery.configuration.environment#preview-environment]: /docs/using-qovery/configuration/environment/#preview-environment
[docs.using-qovery.configuration.environment-variable#alias-environment-variable]: /docs/using-qovery/configuration/environment-variable/#alias-environment-variable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ This guide also work for migrating your application from Heroku to GCP, Azure, S

This guide describes how to migrate your application running on Heroku to AWS with Qovery. It covers all required steps you need to take to deploy your application on AWS and transfer your data from Heroku Postgres to the database managed by AWS via Qovery.

> Please contact us via [our forum][urls.qovery_forum] if you experience any problem while migrating from Heroku to AWS with Qovery.
> We have created a new AI agent capable of migrating from Heroku to AWS, GCP, Scaleway or Azure in a few clicks. Check our [announcement here](https://www.qovery.com/blog/open-source-devops-ai-agent--effortless-migration-from-heroku-to-aws/?utm_campaign=migration-ai-agent-email).

<Assumptions name="guide">

Expand All @@ -29,43 +29,21 @@ This guide describes how to migrate your application running on Heroku to AWS wi

## Migration Steps

1. [Use Buildpacks or Create your Dockerfile](#1-create-your-dockerfile-or-use-buildpacks)
1. [Create your Dockerfile](#1-create-your-dockerfile)
2. [Create resources on Qovery](#2-create-resources-on-qovery)
3. [Configure Environment Variables and Secrets](#3-configure-your-environment-variables-and-secrets)
4. [Copy data from your Heroku databases to your AWS databases](#4-copy-data-from-your-heroku-databases-to-your-aws-databases)
5. [Deploy your apps](#5-deploy-your-apps-)
6. [FAQ by Heroku users](#faq-by-heroku-users)

## 1. Create your Dockerfile or Use Buildpacks
## 1. Create your Dockerfile

Qovery supports two ways to build and run your application coming from Heroku:

1. Buildpacks
2. Docker

Both options build a container image that is runnable by a container engine (E.g. Docker). Qovery runs containers on Kubernetes.

Choose the option that better fits you:

<Tabs
centered={true}
className={"rounded"}
defaultValue={"buildpacks"}
placeholder="Use Buildpacks or Create your Dockerfile"
select={false}
size={null}
values={[{"group":"Platforms","label":"Use Buildpacks","value":"buildpacks"},{"group":"Platforms","label":"Create your Dockerfile","value":"dockerfile"}]}>

<TabItem value="dockerfile">

> Are you familiar with Dockerfile? If not, I do recommend reading [this article][guides.tutorial.how-to-write-a-dockerfile].

Here we will create our Dockerfiles to build and run our applications. Qovery will handle the build and the run of your applications, but need to have at least a Dockerfile to do it.

### Choose your Dockerfile template

To get started,

#### Find Dockerfile template

Pick one Dockerfile template according to the programming language or framework you are using for your app:
Expand Down Expand Up @@ -176,30 +154,6 @@ git push origin

If you have multiple applications to deploy, create a Dockerfile for each of them.

</TabItem>

<TabItem value="buildpacks">

[Buildpacks](https://buildpacks.io/) automatically detects the language and the framework your application is using. Buildpacks builds and runs your app. Here is the list of [supported languages and frameworks][docs.using-qovery.configuration.application#option-1-buildpacks].

<Alert type="warning">

We do recommend using Docker to keep the full control of what's going on behind the scene. Buildpacks is a great technology but difficult to debug when something goes wrong. You can try deploying your apps on AWS with Qovery with Buildpacks, if you do not succeed, we do recommend switching for Docker.

</Alert>

### Limitations

Here are some limitations due to our Buildpacks implementation:

* Qovery Buildpacks does not support Procfile with multiple commands at the moment.
* Qovery does not support custom Buildpacks.

Those limitations will be solved in the coming months.

</TabItem>

</Tabs>

## 2. Create resources on Qovery

Expand All @@ -226,7 +180,6 @@ Steps:
4. Create an application and give it a name (you can give the name of your repo if you have no idea)
5. Select your app repository from your GitHub, GitLab or Bitbucket.
6. Select the branch you want to deploy.
7. Select the Build mode for `Buildpacks` or `Dockerfile` according to what you want.
8. Specify the local listening port of your application.
9. Click on "create"

Expand Down Expand Up @@ -293,12 +246,6 @@ I recommend reading our [Getting Started with Environment Variables][guides.gett

To extract your environment variables from Heroku, we recommend using the [Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli) and exporting all the environment variables and secrets in an .env (dot env) file. Qovery supports the [import of a dot env file][guides.tutorial.import-your-environment-variables-with-the-qovery-cli] via the Qovery web interface and the Qovery CLI.

<Alert type="warning">

If you use Buildpacks for one of your app AND you have indicated a local listening port of your application, you will need to add an environment variable `PORT` with the value of your port to make your application starting properly. Otherwise, Qovery will fail to deploy your app!

</Alert>

[Export your environment variable via the Heroku CLI](https://devcenter.heroku.com/articles/config-vars#view-current-config-var-values) with the command:

```shell
Expand Down

0 comments on commit 30ed208

Please sign in to comment.