Installation Docker (Nginx externe)
Dans ce mode, le conteneur d'application NocoBase et le conteneur Nginx s'exécutent séparément. Vous pouvez commencer par Installation Docker (Nginx intégré), puis basculer l'entrée vers un conteneur Nginx externe.
Quand utiliser ce mode
- Vous voulez déployer NocoBase et le serveur web séparément
- Vous voulez gérer vous-même la configuration Nginx et les ports exposés
- Vous voulez exposer au réseau public uniquement le conteneur proxy
Exemple de docker-compose.yml
Si vous avez besoin de l'image full, remplacez latest-no-nginx par latest-full-no-nginx.
Le mappage 13000:80 sert uniquement aux tests locaux, pour éviter d'occuper directement les ports standard de l'hôte. En production, on ne garde généralement pas 13000:80; le conteneur Nginx externe mappe plutôt directement les ports 80 et 443 de l'hôte.
Points clés
NOCOBASE_EXTRACT_CLIENT_ASSETS=trueextrait les ressources client et génère la configuration du proxyNOCOBASE_PROXY_PROVIDER=nginxindique que la configuration Nginx doit être généréeNOCOBASE_PROXY_UPSTREAM_HOST=apppermet au conteneur Nginx d'accéder au serviceappvia le réseau Compose./storagedoit être monté dansappetnginxafin de partager la configuration du proxy, les ressources statiques et les fichiers téléversés- Le conteneur
nginxdoit attendre quenocobase.confsoit généré, puis créer un lien vers/etc/nginx/conf.d/default.confavecln -sf - La configuration générée transmet à NocoBase la route
/files/sousAPP_PUBLIC_PATHainsi que la route/files/à la racine, afin d'assurer l'aperçu et le téléchargement authentifiés des fichiers - Si vous utilisez un conteneur Nginx externe, laissez le conteneur
nginxgérer le mappage du port hôte. Pour les tests, vous pouvez commencer avec13000:80; en production, exposez généralement directement les ports80et443de l'hôte, tandis que le serviceappn'a pas besoin d'exposer son port à l'hôte
Si vous utilisez un Nginx local sur l'hôte
Si votre Nginx est installé directement sur l'hôte au lieu de s'exécuter dans un conteneur Docker, il est préférable d'utiliser un docker-compose.yml séparé. Dans ce mode, le service app doit exposer un port vers l'hôte, et les variables du proxy doivent être définies du point de vue de l'hôte.
Vous pouvez utiliser un docker-compose.yml comme celui-ci :
Dans cette variante :
NOCOBASE_PROXY_STORAGE_PATHdoit être le chemin absolu du répertoirestoragesur l'hôteNOCOBASE_PROXY_UPSTREAM_HOSTdoit être127.0.0.1- Le service
appdoit conserverports, afin que le Nginx local puisse atteindre l'application via127.0.0.1:13000
Une fois le conteneur app démarré, attendez que le fichier de configuration soit généré, puis créez le lien vers le répertoire de configuration local de Nginx :
Si votre Nginx local n'utilise pas le répertoire conf.d, remplacez la cible du lien par votre propre chemin de configuration. En général, il est plus sûr de garder nocobase.conf comme un fichier inclus depuis le contexte http {} plutôt que d'en recopier le contenu manuellement.
Si vous gérez Nginx vous-même au lieu d'utiliser la configuration générée, vérifiez que /files/ et la route correspondante sous APP_PUBLIC_PATH sont transmises à NocoBase avant les règles de fallback de la SPA. Consultez Proxy inverse Nginx pour un exemple complet.
Liens associés
- Installation Docker (Nginx intégré) — Commencez par le déploiement à conteneur unique
- Proxy de ressources statiques avec Nginx — En savoir plus sur la configuration Nginx générée

