Conteneuriser une application Bun
Prérequis
- Vous avez un client Git. Les exemples de cette section utilisent un client Git en ligne de commande, mais vous pouvez utiliser n'importe quel client.
Aperçu
Pendant longtemps, Node.js a été l'environnement d'exécution de facto pour les applications JavaScript côté serveur. Ces dernières années ont vu l'émergence de nouveaux environnements d'exécution alternatifs dans l'écosystème, y compris le site web de Bun. Comme Node.js, Bun est un environnement d'exécution JavaScript. Bun est un environnement d'exécution relativement léger conçu pour être rapide et efficace.
Pourquoi développer des applications Bun avec Docker ? Avoir plusieurs environnements d'exécution au choix est formidable. Mais à mesure que le nombre d'environnements d'exécution augmente, il devient difficile de gérer les différents environnements d'exécution et leurs dépendances de manière cohérente entre les environnements. C'est là que Docker intervient. La création et la destruction de conteneurs à la demande sont un excellent moyen de gérer les différents environnements d'exécution et leurs dépendances. De plus, comme il s'agit d'un environnement d'exécution assez récent, obtenir un environnement de développement cohérent pour Bun peut être un défi. Docker peut vous aider à mettre en place un environnement de développement cohérent pour Bun.
Obtenir l'application exemple
Clonez l'application exemple à utiliser avec ce guide. Ouvrez un terminal, changez de répertoire pour un répertoire dans lequel vous souhaitez travailler, et exécutez la commande suivante pour cloner le dépôt :
$ git clone https://github.com/dockersamples/bun-docker.git && cd bun-docker
Vous devriez maintenant avoir le contenu suivant dans votre répertoire bun-docker
.
├── bun-docker/
│ ├── compose.yml
│ ├── Dockerfile
│ ├── LICENSE
│ ├── server.js
│ └── README.md
Dans le Dockerfile, vous remarquerez que l'instruction FROM
utilise oven/bun
comme image de base. C'est l'image officielle de Bun créée par Oven, l'entreprise
derrière Bun. Cette image est disponible sur Docker Hub.
# Utiliser l'image Bun comme image de base
FROM oven/bun:latest
# Définir le répertoire de travail dans le conteneur
WORKDIR /app
# Copier le contenu du répertoire courant dans le conteneur à /app
COPY . .
# Exposer le port sur lequel l'API écoutera
EXPOSE 3000
# Lancer le serveur lorsque le conteneur démarre
CMD ["bun", "server.js"]
En plus de spécifier oven/bun
comme image de base, ce Dockerfile :
- Définit le répertoire de travail dans le conteneur à
/app
- Copie le contenu du répertoire courant dans le répertoire
/app
du conteneur - Expose le port 3000, où l'API écoute les requêtes
- Et enfin, démarre le serveur lorsque le conteneur se lance avec la commande
bun server.js
.
Lancer l'application
À l'intérieur du répertoire bun-docker
, exécutez la commande suivante dans un terminal.
$ docker compose up --build
Ouvrez un navigateur et affichez l'application à http://localhost:3000. Vous verrez un message {"Status" : "OK"}
dans le navigateur.
Dans le terminal, appuyez sur ctrl
+c
pour arrêter l'application.
Lancer l'application en arrière-plan
Vous pouvez lancer l'application détachée du terminal en ajoutant l'option -d
. À l'intérieur du répertoire bun-docker
, exécutez la commande suivante
dans un terminal.
$ docker compose up --build -d
Ouvrez un navigateur et affichez l'application à http://localhost:3000.
Dans le terminal, exécutez la commande suivante pour arrêter l'application.
$ docker compose down
Résumé
Dans cette section, vous avez appris comment vous pouvez conteneuriser et exécuter votre application Bun en utilisant Docker.
Informations connexes :
Prochaines étapes
Dans la section suivante, vous apprendrez comment vous pouvez développer votre application en utilisant des conteneurs.