Application Golang à exécuter en tant que conteneur Docker

Application Golang A Executer En Tant Que Conteneur Docker



Dans ce didacticiel, nous allons apprendre les bases de la conteneurisation en configurant une application Golang pour qu'elle s'exécute en tant que conteneur Docker. Nous apprendrons à travailler avec un Dockerfile pour configurer toutes les exigences de notre application.

Go est un langage de programmation open source, typé statiquement et compilé, réputé pour sa capacité à faciliter le développement d'un logiciel simple, fiable et très efficace. Il trouve son utilité dans la création de diverses applications, notamment des applications Web, des solutions cloud natives, des interfaces de ligne de commande (CLI) et, curieusement, même Docker lui-même est conçu à l'aide de Go.

Dans notre cas, nous construisons un simple serveur HTTP dans Go qui nous permet de démontrer comment créer et Dockeriser l'application en étapes simples.







Exigences:

Pour suivre ce didacticiel, vous avez besoin des outils suivants :



  1. Compilateur Go installé (version 1.21 et supérieure requise)
  2. Exécuter Docker Engine sur votre machine hôte
  3. Un IDE ou un éditeur de texte pour éditer l'application Go. Nous vous recommandons d'utiliser Visual Studio ou Vim
  4. Un interpréteur de ligne de commande tel que Bash, ZSH, PowerShell, etc.

Une fois les exigences données remplies, continuons et apprenons comment créer l'application.



Création de l'application

La prochaine étape consiste à créer notre application. Dans notre cas, nous construisons un simple serveur HTTP qui répond par un simple message.





Commencez par créer un répertoire pour stocker le projet Go. Vous pouvez fournir n’importe quel nom approprié.

$ mkdir aller_serveur

Accédez au répertoire et créez un nouveau fichier pour stocker le code source. Dans notre cas, nous appelons le fichier « main.go », ce qui indique que le fichier est un code source Go.



$ touche main.go

Enfin, modifiez le fichier et ajoutez le code source à l'application comme illustré ci-dessous :

paquet principal

importer (
'fmt'
'net/http'
)

fonction principale ( ) {
// gérer les demandes entrantes
http.HandleFunc ( '/' , fonction ( Dans http.ResponseWriter, r * http.Requête ) {
// Écrire une réponse au client
fmt.Fprintf ( Dans , 'Depuis Docker (:' )
} )

// Démarrez le serveur HTTP sur le port 8080
fmt.Println ( 'Le serveur fonctionne sur :8080' )
http.ÉcouterEtServir ( ':8080' , nul )
}

L'application précédente crée un serveur HTTP de base qui se lie au port 8080. Le serveur répond avec un message de base tel que défini précédemment.

Tester l'application

Avant de dockeriser l'application, assurons-nous qu'elle fonctionne correctement. Exécutez la commande suivante :

$ va courir main.go

La commande précédente démarre l'application et renvoie le message comme suit :

Le serveur fonctionne sur : 8080

Ensuite, pour tester le serveur HTTP, vous pouvez exécuter la commande « curl » comme suit :

$ boucler http : // hôte local : 8080 /

La commande précédente devrait renvoyer le message suivant :

Depuis Docker ( : %

Nous pouvons maintenant procéder et dockeriser l'application précédente comme défini dans les étapes suivantes.

Conteneuriser l'application

Les étapes suivantes expliquent comment créer un conteneur pour l'application. Nous commençons par créer le Dockerfile dans le répertoire du projet.

$ CD aller_serveur

Créez un fichier appelé Dockerfile sans aucune extension et modifiez le fichier avec un éditeur de texte. Ce fichier nous permet de définir toutes les exigences de notre application comme suit :

$ touche Fichier Docker
$ parce que Fichier Docker

Ajoutez la configuration comme suit :

DE golang : 1.21

RÉPERT TRAVAIL / application

COPIE . .

RUN allez construire main.go -O principal .

EXPOSER 8080

CMD [ './principal' ]

Dans le Dockerfile précédent, nous définissons les opérations précédentes pour l'application.

  • Définissez l’image de base sur l’image officielle Golang version 1.21.
  • Configurez le répertoire de travail à l’intérieur du conteneur sur « /app ».
  • Nous copions l'intégralité du répertoire du projet dans le conteneur.
  • Créez l'application Go à l'intérieur du conteneur.
  • Exposez le port 8080 pour autoriser un trafic HTTP entrant.
  • Définissez la commande pour exécuter l'application Go.

Construire l'image Docker

Pour créer l'image de l'application, ouvrez le terminal et accédez au répertoire du projet. Ensuite, exécutez la commande suivante pour créer l'image :

$ sudo construction de docker -t go_server_docker .

Remplacez go_server_docker par le nom que vous souhaitez attribuer à l'image de l'application.

Après avoir créé avec succès l'image Docker, vous pouvez exécuter un conteneur basé sur cette image avec la commande suivante :

$ exécution du docker -p 8080 : 8080 go_server_docker

La commande précédente doit mapper le port 8080 de la machine hôte au port 8080 à l’intérieur du conteneur.

Pour tester le conteneur, exécutez la commande suivante :

$ boucler http : // hôte local : 8080

Cela devrait imprimer le message défini dans l'application.

Conclusion

Dans ce tutoriel, nous avons appris à créer une application Go de base. Nous avons également appris à conteneuriser l'application en définissant les exigences dans le Dockerfile, en créant l'image à partir du conteneur et en exécutant le conteneur à partir de l'image.