Maison > développement back-end > Golang > le corps du texte

déploiement en ligne de Golang

WBOY
Libérer: 2023-05-27 11:18:09
original
620 Les gens l'ont consulté

1. Avant-propos

Avec l'avancée de la technologie et la popularisation d'Internet, de plus en plus d'applications et de services doivent être déployés en ligne. Dans ce processus, le choix d’un langage de programmation approprié est également un élément nécessaire. En tant que langage de programmation open source, Golang est très apprécié pour sa rapidité, son efficacité et sa stabilité. Cet article présentera en détail les étapes du déploiement en ligne de Golang et les solutions aux problèmes courants.

2. Compilation et packaging du projet Golang

Avant de déployer le projet Golang, compilez-le et emballez-le dans un fichier exécutable binaire. Deux méthodes de compilation différentes sont présentées ci-dessous.

  1. Utilisez la commande go build

Utilisez la commande go build intégrée au langage Go pour terminer la compilation et l'empaquetage. Le format de commande est le suivant, où main.go est le nom du fichier d'entrée.

go build -o output main.go
Copier après la connexion
Copier après la connexion

Après avoir exécuté la commande, un fichier exécutable nommé output sera généré dans le répertoire courant.

  1. Compilation avec des conteneurs Docker

Docker est un outil de conteneurisation largement utilisé. L'utilisation de conteneurs Docker pour compiler et empaqueter des projets Golang nous permet de déployer et de mettre à niveau des applications plus facilement.

Exécutez la commande suivante pour extraire l'image Golang et entrez dans le conteneur :

docker pull golang:latest
docker run -itd --name go golang:latest
docker exec -it go bash
Copier après la connexion

Entrez le dossier du projet dans le conteneur et utilisez la commande go build pour compiler et empaqueter le projet .

go build -o output main.go
Copier après la connexion
Copier après la connexion

Après l'exécution, vous pouvez utiliser la commande scp dans le conteneur pour copier le fichier binaire généré vers le local.

scp root@ip:/path/to/yourfile .
Copier après la connexion

3. Déploiement du projet Golang

Après avoir terminé la compilation et le packaging du projet Golang, il peut être déployé dans l'environnement de production. Deux méthodes courantes de déploiement de projets Golang sont présentées ci-dessous.

  1. Déploiement en ligne de commande

Utilisez la ligne de commande pour déployer directement le projet Golang Vous devez exécuter la commande suivante et renseigner le port. numéro et numéro de port après le port et la sortie respectivement.

nohup ./output -port=8080 > app.log 2>&1 &
Copier après la connexion

Cette commande exécutera l'application Golang en arrière-plan et affichera le journal dans le fichier app.log.

  1. Utiliser le déploiement du service systemd

Systemd est un gestionnaire de système et de services largement utilisé dans les systèmes Linux. Utiliser systemd pour déployer des projets Golang nous permet de déployer des applications plus rapidement et de manière plus stable.

Vous pouvez créer un fichier de service nommé app.service, qui contient des informations telles que le chemin d'exécution, le chemin du journal, le type de démarrage et les variables d'environnement requises de l'application Golang. L'exemple de fichier est le suivant :

[Unit]
Description=Golang Application Service
After=network.target
Requires=network.target
 
[Service]
ExecStart=/path/to/output -port=8080
WorkingDirectory=/path/to/
Restart=always
RestartSec=3
StartLimitBurst=10
StartLimitInterval=60s
 
StandardOutput=file:/var/log/app.log
StandardError=file:/var/log/app.log
 
[Install]
WantedBy=multi-user.target
Copier après la connexion

Avant d'activer le service systemctl, vous devez placer le fichier dans le répertoire /etc/systemd/system/ et activer le service via la commande suivante.

systemctl daemon-reload
systemctl enable app.service
systemctl start app.service
Copier après la connexion

Après avoir exécuté la commande ci-dessus, l'application Golang peut être déployée avec succès dans l'environnement de production.

4. Solutions aux problèmes courants

  1. Conflit de port

Lors de l'exécution du projet Golang, si vous avez sélectionné Le numéro de port occupé empêchera le démarrage du programme. La solution consiste à spécifier un numéro de port inoccupé dans la commande d'exécution. Vous pouvez vérifier l'occupation du port avec la commande suivante.

lsof -i:端口号
Copier après la connexion
  1. Impossible d'accéder à la base de données MySQL

Si la base de données MySQL est utilisée dans le projet Golang, mais que "aucun hôte de ce type" n'est demandé lorsque le programme démarre, etc. informations associées, il est possible que la base de données MySQL ne soit pas configurée correctement. Il est nécessaire de vérifier si la base de données MySQL a été correctement installée et si elle peut être connectée.

  1. L'utilisation de la mémoire système est trop élevée

Lors du déploiement du projet Golang, si l'utilisation de la mémoire est trop élevée, il peut s'agir du Golang l'application elle-même Il y a un problème. À ce stade, vous devez vérifier la logique du code, optimiser le programme et réduire l'utilisation de la mémoire.

Cet article présente les méthodes de compilation, de packaging et de déploiement des projets Golang, ainsi que des solutions aux problèmes courants. J'espère que cela pourra apporter de l'aide aux développeurs Golang dans le processus de déploiement du projet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal