Maison Opération et maintenance Nginx Comment déployer une application monopage avec Docker+Nginx

Comment déployer une application monopage avec Docker+Nginx

May 15, 2023 pm 07:40 PM
docker nginx

Du développement au déploiement, pratique

Lorsque nous développons une application monopage, après avoir exécuté le build

npm run build
Copier après la connexion

générera un index.html dans le répertoire dist, alors comment déployer cet index.html sur le serveur ?

Structure des répertoires

  • dist/ : Fichiers statiques construits par le front-end

  • docker/ : Fichiers de configuration requis pour la mise en miroir

Comment déployer une application monopage avec Docker+Nginx

Configurer nginx

Choisissez d'abord quelques points de configuration , gzip compresse les ressources pour économiser la bande passante et améliorer la vitesse de chargement du navigateur

Bien que webpack prenne déjà en charge la génération de packages compressés .gz pendant la construction, il peut également être activé via nginx
gzip on;
gzip_disable "msie6";
# 0-9 等级,级别越高,压缩包越小,但对服务器性能要求也高
gzip_comp_level 9;
gzip_min_length 100;
# gzip 不支持压缩图片,我们只需要压缩前端资源
gzip_types text/css application/javascript;
Copier après la connexion

Ensuite, il y a la configuration du port de service Le proxy inverse de l'API. au service backend

server {
 listen 8080;
 server_name www.frontend.com;

 root /usr/share/nginx/html/;

 location / {
 index index.html index.htm;
 try_files $uri $uri/ /index.html;
 # 禁止缓存 html,以保证引用最新的 css 和 js 资源
 expires -1;
 }

 location /api/v1 {
 proxy_pass http://backend.com;
 }
}
Copier après la connexion

La configuration complète ressemble à ceci

worker_processes 1;

events { worker_connections 1024; }

http {
 ##
 # basic settings
 ##

 sendfile on;
 tcp_nopush on;
 tcp_nodelay on;
 keepalive_timeout 65;
 types_hash_max_size 2048;

 include /etc/nginx/mime.types;
 default_type application/octet-stream;

 ##
 # logging settings
 ##

 access_log /var/log/nginx/access.log;
 error_log /var/log/nginx/error.log;

 ##
 # gzip settings
 ##

 gzip on;
 gzip_disable "msie6";
 gzip_comp_level 9;
 gzip_min_length 100;
 gzip_types text/css application/javascript;

 server {
 listen 8080;
 server_name www.frontend.com;

 root /usr/share/nginx/html/;

 location / {
  index index.html index.htm;
  try_files $uri $uri/ /index.html;
  expires -1;
 }

 location /api/v1 {
  proxy_pass http://backend.com;
 }
 }
}
Copier après la connexion

Configurer Docker

C'est un peu plus simple ici. Basé sur l'image de base, copiez le nginx.conf et l'index.html que nous avons écrits dans l'image

from nginx:alpine

copy nginx.conf /etc/nginx/nginx.conf
copy dist /usr/share/nginx/html
Copier après la connexion
.

Écrivez le makefile

Après avoir terminé les préparations ci-dessus, vous pouvez écrire des commandes pour effectuer le packaging de l'image

Donnez d'abord un nom et un numéro de port à l'image

app_name = spa_nginx_docker
port = 8080
Copier après la connexion

Emballez l'image via build

build:
 cp docker/dockerfile .
 cp docker/nginx.conf .
 docker build -t $(app_name) .
 rm dockerfile
 rm nginx.conf
Copier après la connexion

Démarrez l'image via déployer

deploy:
 docker run -d -it -p=$(port):$(port) --name="$(app_name)" $(app_name)
Copier après la connexion

Enfin, il y a un arrêt pour arrêter et nettoyer l'image

stop:
 docker stop $(app_name)
 docker rm $(app_name)
 docker rmi $(app_name)
Copier après la connexion

La configuration complète ressemble à ceci

app_name = spa_nginx_docker
port = 8080

build:
 cp docker/dockerfile .
 cp docker/nginx.conf .
 docker build -t $(app_name) .
 rm dockerfile
 rm nginx.conf

deploy:
 docker run -d -it -p=$(port):$(port) --name="$(app_name)" $(app_name)

stop:
 docker stop $(app_name)
 docker rm $(app_name)
 docker rmi $(app_name)
Copier après la connexion

La commande complète ressemble à ceci

# 静态资源构建
npm run build

# 镜像打包
make build

# 停止并删除旧镜像(首次可忽略)
make stop

# 镜像启动
make deploy
Copier après la connexion

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment changer la source d'image Docker en Chine Comment changer la source d'image Docker en Chine Apr 15, 2025 am 11:30 AM

Vous pouvez passer à la source de miroir domestique. Les étapes sont les suivantes: 1. Modifiez le fichier de configuration /etc/docker/daemon.json et ajoutez l'adresse source miroir; 2. Après enregistrer et sortir, redémarrez le service Docker Sudo Systemctl Docker pour améliorer la vitesse et la stabilité du téléchargement d'image.

Comment créer un miroir dans Docker Comment créer un miroir dans Docker Apr 15, 2025 am 11:27 AM

Étapes pour créer une image docker: écrivez un dockerfile qui contient les instructions de construction. Créez l'image dans le terminal, en utilisant la commande docker build. Marquez l'image et attribuez des noms et des balises à l'aide de la commande docker tag.

Comment utiliser Docker Desktop Comment utiliser Docker Desktop Apr 15, 2025 am 11:45 AM

Comment utiliser Docker Desktop? Docker Desktop est un outil pour exécuter des conteneurs Docker sur les machines locales. Les étapes à utiliser incluent: 1. Installer Docker Desktop; 2. Démarrer Docker Desktop; 3. Créer une image Docker (à l'aide de DockerFile); 4. Build Docker Image (en utilisant Docker Build); 5. Exécuter Docker Container (à l'aide de Docker Run).

Comment enregistrer l'image docker Comment enregistrer l'image docker Apr 15, 2025 am 11:54 AM

Pour enregistrer l'image dans Docker, vous pouvez utiliser la commande docker commit pour créer une nouvelle image, contenant l'état actuel du conteneur spécifié, Syntaxe: Docker Commit [Options] Nom d'image de l'ID de conteneur. Pour enregistrer l'image dans le référentiel, vous pouvez utiliser la commande docker push, Syntax: Docker Push Image Name [: Tag]. Pour importer des images enregistrées, vous pouvez utiliser la commande docker pull, syntaxe: docker pull name [: tag].

Comment mettre à jour l'image de Docker Comment mettre à jour l'image de Docker Apr 15, 2025 pm 12:03 PM

Les étapes pour mettre à jour une image Docker sont les suivantes: Tirez la dernière étiquette d'image Nouvelle image Supprimer l'ancienne image pour une balise spécifique (facultative) Redémarrez le conteneur (si nécessaire)

Comment appeler docker lnmp Comment appeler docker lnmp Apr 15, 2025 am 11:15 AM

Docker LNMP Container Call Étapes: Exécutez le conteneur: docker run -d --name lnmp-container -p 80:80 -p 443: 443 lnmp-stack pour obtenir le conteneur ip: docker inspect lnmp-container | Site Web d'accès Grep iPadress: http: // & lt; contener ip & gt; /index.phpssh Access: docker exec -it lnmp-container bash access mysql: mysql -u roo

Comment construire un référentiel privé par Docker Comment construire un référentiel privé par Docker Apr 15, 2025 am 11:06 AM

Vous pouvez créer des référentiels privés Docker pour stocker et gérer en toute sécurité les images de conteneurs, en fournissant un contrôle et une sécurité stricts. Les étapes incluent: la création d'un référentiel, l'accès, le déploiement d'un référentiel, la poussée d'une image et le tir d'une image. Les avantages incluent la sécurité, le contrôle des versions, la réduction du trafic réseau et la personnalisation.

Comment exécuter la commande docker Comment exécuter la commande docker Apr 15, 2025 am 11:24 AM

Comment exécuter les commandes Docker? Installez Docker et démarrez le démon. Commandes docker communes: Docker Images: Afficher l'image docker PS: afficher le conteneur Docker Exécuter: Exécuter le conteneur Docker Stop: Stop Container Docker RM: Delete Container Interagissez avec Container à l'aide de Docker Commande: Docker Exec: Exécuter Commande Docker Docker: Attacher les journaux Docker Console: Afficher le journal Dock

See all articles