Skip to content

DigitalOcean est une plateforme cloud qui fournit une gamme de services pour construire et déployer des applications.

Dans ce guide, nous allons déployer un serveur HTTP Bun sur DigitalOcean en utilisant un Dockerfile.

NOTE

Avant de continuer, assurez-vous d'avoir :

Créer un nouveau registre de conteneurs DigitalOcean

Créez un nouveau registre de conteneurs pour stocker l'image Docker.

Via le tableau de bord DigitalOcean

Dans le tableau de bord DigitalOcean, allez dans Container Registry et saisissez les détails du nouveau registre.

Assurez-vous que les détails sont corrects, puis cliquez sur Create Registry.

Via le CLI DigitalOcean
bash
doctl registry create bun-digitalocean-demo
txt
Name                     Endpoint                                           Region slug
bun-digitalocean-demo    registry.digitalocean.com/bun-digitalocean-demo    sfo2

Vous devriez voir le nouveau registre dans le tableau de bord du registre DigitalOcean :

Créer un nouveau Dockerfile

Assurez-vous d'être dans le répertoire contenant votre projet, puis créez un nouveau Dockerfile à la racine de votre projet. Ce fichier contient les instructions pour initialiser le conteneur, copier vos fichiers de projet locaux, installer les dépendances et démarrer l'application.

docker
# Utiliser l'image officielle Bun pour exécuter l'application
FROM oven/bun:debian

# Définir le répertoire de travail sur `/app`
WORKDIR /app

# Copier le package.json et bun.lock dans le conteneur
COPY package.json bun.lock ./

# Installer les dépendances
RUN bun install --production --frozen-lockfile

# Copier le reste de l'application dans le conteneur
COPY . .

# Exposer le port (DigitalOcean définira la variable d'environnement PORT)
EXPOSE 8080

# Exécuter l'application
CMD ["bun", "index.ts"]

NOTE

Assurez-vous que la commande de démarrage correspond au point d'entrée de votre application. Cela peut aussi être `CMD ["bun", "run", "start"]` si vous avez un script de démarrage dans votre `package.json`.

Cette image installe les dépendances et exécute votre application avec Bun dans un conteneur. Si votre application n'a pas de dépendances, vous pouvez omettre la ligne RUN bun install --production --frozen-lockfile.

Créez un nouveau fichier .dockerignore à la racine de votre projet. Ce fichier contient les fichiers et répertoires qui doivent être exclus de l'image du conteneur, comme node_modules. Cela rend vos builds plus rapides et plus petits :

docker
node_modules
Dockerfile*
.dockerignore
.git
.gitignore
README.md
LICENSE
.vscode
.env
# Tous les autres fichiers ou répertoires que vous souhaitez exclure

Authentifier Docker avec le registre DigitalOcean

Avant de build et pousser l'image Docker, authentifiez Docker avec le registre de conteneurs DigitalOcean :

bash
doctl registry login
txt
Successfully authenticated with registry.digitalocean.com

NOTE

Cette commande authentifie Docker avec le registre DigitalOcean en utilisant vos identifiants DigitalOcean. Sans cette étape, la commande de build et push échouera avec une erreur d'authentification 401.

Build et pousser l'image Docker vers le registre DigitalOcean

Assurez-vous d'être dans le répertoire contenant votre Dockerfile, puis buildez et poussez l'image Docker vers le registre DigitalOcean en une seule commande :

bash
docker buildx build --platform=linux/amd64 -t registry.digitalocean.com/bun-digitalocean-demo/bun-digitalocean-demo:latest --push .

NOTE

Si vous build sur un Mac ARM (M1/M2), vous devez utiliser `docker buildx` avec `--platform=linux/amd64` pour assurer la compatibilité avec l'infrastructure DigitalOcean. Utiliser `docker build` sans l'option de plateforme créera une image ARM64 qui ne s'exécutera pas sur DigitalOcean.

Une fois l'image poussée, vous devriez la voir dans le tableau de bord du registre DigitalOcean :

Créer un nouveau projet DigitalOcean App Platform

Dans le tableau de bord DigitalOcean, allez dans App Platform > Create App. Nous pouvons créer un projet directement à partir de l'image du conteneur.

Assurez-vous que les détails sont corrects, puis cliquez sur Next.

Examinez et configurez les paramètres des ressources, puis cliquez sur Create app.

Visiter votre application en ligne

🥳 Votre application est maintenant en ligne ! Une fois l'application créée, vous devriez la voir dans le tableau de bord App Platform avec l'URL publique.

Bun édité par www.bunjs.com.cn