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 :- Une application Bun prête à être déployée
- Un compte DigitalOcean
- DigitalOcean CLI installé et configuré
- Docker installé et ajouté à votre
PATH
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
doctl registry create bun-digitalocean-demoName Endpoint Region slug
bun-digitalocean-demo registry.digitalocean.com/bun-digitalocean-demo sfo2Vous 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.
# 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 :
node_modules
Dockerfile*
.dockerignore
.git
.gitignore
README.md
LICENSE
.vscode
.env
# Tous les autres fichiers ou répertoires que vous souhaitez exclureAuthentifier Docker avec le registre DigitalOcean
Avant de build et pousser l'image Docker, authentifiez Docker avec le registre de conteneurs DigitalOcean :
doctl registry loginSuccessfully authenticated with registry.digitalocean.comNOTE
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 :
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.