Unity
Apprenez en pratiquant et déployez votre premier serveur dédié sur Edgegap. À la fin de ce guide, vous aurez déployé un serveur dédié avec Edgegap sans frais.
✔️ Préparation
Confiant dans vos builds de serveur ? Passer à Unity ou Fonctionnalités avancées pour en savoir plus.
⚙️ 1. Connecter le compte
☑️ Connectez-vous et vérifiez qu'il n'y a pas de nouvelles erreurs dans votre console Unity liées au plugin d'Edgegap.
✅ Vous pouvez maintenant passer à l'étape suivante.
Dépannage et FAQ
!Succès : 400 BAD REQUEST - POST | https://api.edgegap.com/v1/wizard/init-quick-start - {"message": "Le navigateur (ou le proxy) a envoyé une requête que ce serveur n'a pas pu comprendre."}
Si vous l’avez installé en copiant le fichier ZIP ou utilisé un projet d'exemple avec une copie du plugin installée ainsi, vous devrez installer manuellement les dépendances du package y compris la bibliothèque Newtonsoft JSON, voir le dépôt officiel du plugin.
Veuillez nous contacter sur Discord communautaire pour obtenir de l'aide si ce n'est pas le cas.
🔧 2. Construire le serveur de jeu
Que vous utilisiez une machine Windows, Mac ou Linux, vous allez devoir construire votre serveur pour l'exécution Linux, car la plupart des fournisseurs cloud aujourd'hui (y compris Edgegap) fonctionnent sous Linux. Ne vous inquiétez pas, aucune connaissance Linux n'est requise pour accomplir cela avec notre plugin.
☑️ Vérifiez que vous avez installé les outils de build Linux Unity requis.
☑️ Modifier les paramètres de build pour s'assurer que toutes vos scènes de jeu requises sont incluses.
Utilisateurs avancés d'Unity - changer éventuellement Paramètres de build Unity. Attention ! Cela peut casser votre build.
☑️ Optionnel : ajoutez un script spécifique au netcode pour la vérification des ports et le bootstrap de l'environnement à votre scène serveur initiale depuis le menu Edgegap Server Hosting (clic droit / ➕ dans votre fenêtre Hiérarchie).

Une fois que vous avez complété l'étape Unity, le script de vérification des ports enregistrera un avertissement si votre adresse ou vos ports netcode ne correspondent pas à votre Mappage de ports de la version de l'application de configuration.
Les builds serveur doivent utiliser l'adresse 0.0.0.0 et le port 7777 dans votre transport netcode. Si vous personnalisez votre port, veuillez spécifier le même dans votre Applications et versions une fois que vous Unity.
☑️ Une fois satisfait de votre configuration, cliquez sur Construire le serveur, attendez la fin du processus et vérifiez qu'il n'y a pas de nouvelles erreurs dans votre console Unity. L'achèvement de cette étape aboutira à un nouveau dossier apparaissant à la racine de votre projet - Builds/EdgegapServer/ServerBuild .
✅ Vous pouvez maintenant passer à l'étape suivante.
Dépannage et FAQ
Unity : les seules cibles standalone prises en charge sont Windows x64 et OSX avec OpenXR.
Ouvrez vos Packages et désactivez OpenXR avant de construire votre serveur.
Le plugin OpenXR n'est requis que pour les clients et n'est pas compatible avec les builds serveur Linux. En l'excluant de vos builds serveur, vous ne perdez aucune fonctionnalité.
🐋 3. Conteneuriser le serveur
Travailler en équipe de développeurs signifie partager votre code. Quand les choses tournent mal, la dernière chose que vous voulez entendre est “ça fonctionne sur ma machine”. Les serveurs de jeu doivent fonctionner de manière fiable sur n'importe quelle machine, car les serveurs d'un jeu à succès fonctionneront sur des milliers de machines serveurs à travers le monde.
Pour aider à rendre votre serveur fiable, nous utilisons Docker - un logiciel de virtualisation garantissant que toutes les dépendances de votre code serveur jusqu'au niveau du système d'exploitation seront toujours exactement les mêmes, peu importe comment ou où le serveur est lancé.
☑️ Pour l'instant, commencez par cliquer sur le bouton Valider pour vous assurer que vous avez complété Outils pour développeurs.
☑️ Vous pouvez configurer les options suivantes (ou conserver les valeurs par défaut) :
Chemin de build est le chemin relatif vers votre artefact de build serveur, gardons la valeur par défaut pour l'instant.
Docker n'accepte que des chemins de build relatifs au dossier racine de votre projet, gardez les builds à l'intérieur de votre dossier de projet.
Nom de l'image est un identifiant unique de votre choix, étiquetant votre build serveur avant l'envoi.
Habituellement, cela inclura le nom de votre jeu - par exemple “mon-serveur-de-jeu”.
Tag de l'image est un identifiant pointant vers une version spécifique de votre image.
Le terme “artefact de build” est parfois utilisé pour désigner une version spécifique de votre image.
Les horodatages sont une excellente option pour le marquage, par ex.,
2024.01.30-16.23.00-UTC.
Chemin vers le Dockerfile peut être utilisé pour personnaliser la recette de vos images.
Nous recommandons de conserver le paramètre par défaut pour l'instant, vous pouvez en lire davantage plus tard dans la section Unity.
Paramètres de build Docker optionnels peuvent être utilisés pour donner des instructions supplémentaires à Docker sur des nuances plus fines.
Nous recommandons de conserver le paramètre par défaut pour l'instant, vous pouvez lire plus tard dans la documentation Docker.
☑️ Une fois satisfait de votre configuration, cliquez sur Conteneuriser avec Docker, attendez la fin du processus et vérifiez qu'il n'y a pas de nouvelles erreurs dans votre console Unity. L'achèvement de cette étape aboutira à un nouvelle image apparaissant sur votre machine locale. Vous pouvez vérifier cela soit dans Docker Desktop, dans l'onglet Images sous Local (par défaut), soit dans le CLI docker en exécutant docker images .
✅ Vous pouvez maintenant passer à l'étape suivante.
Dépannage et FAQ
/bin/bash : docker : commande introuvable , ou n'a pas pu trouver Packages\com.edgegap.unity-servers-plugin\Editor
Tout d'abord, assurez-vous d'avoir complété Outils pour développeurs.
Confirmez que vous avez vérifié votre compte Edgegap, vous devriez avoir reçu un lien de vérification par e-mail.
Certaines configurations peuvent avoir été réinitialisées après la mise à jour de Docker Desktop. Essayez de naviguer dans Paramètres / Avancé de Docker Desktop et pour “Choisir comment configurer l'installation des outils CLI de Docker :” sélectionnez “Système (nécessite mot de passe)”.
docker build nécessite exactement 1 argument
Veuillez vérifier que votre tag d'image ne contient pas de caractères d'espacement (espaces, tabulations). Retaper la valeur du tag d'image garantira que vous n'avez pas accidentellement copié de tels caractères.
(code HTTP 400) inattendu - format de tag invalide
Ceci est un problème connu avec la version 4.33 de Docker sur macOS, veuillez envisager de revenir à la version 4.32 ou de mettre à niveau vers la 4.35.
ERREUR : échec de la résolution : ubuntu:22.04 : échec pour résoudre les métadonnées source pour http://docker.io/library/ubuntu:22.04 : échec d'autorisation : échec de la récupération du token oauth
Êtes-vous situé en Chine ? Votre connexion peut être interrompue par la Grande Muraille (pare-feu). Essayez d'exécuter
docker pull ubuntu:22.04dans votre ligne de commande manuellement (ouvrez la ligne de commande en appuyant sur Win+R, puis tapezcmdet Entrée).
System.IndexOutOfRangeException : L'index était en dehors des limites du tableau.
Si vous avez installé notre plugin quickstart Unity en téléchargeant le ZIP, le cache de votre éditeur Unity pourrait être corrompu. Essayez de supprimer votre copie du plugin et d'installer en utilisant l'URL git ou depuis l'Asset Store Unity. Vous ne devriez plus avoir besoin du package Newtonsoft.JSON car il est automatiquement inclus avec les autres sources.
La taille de mon image docker est massive (plus de 1 Go) / minuscule (moins de 100 Mo), est-ce normal ?
Cela peut être acceptable dans certains cas, tant que vous pouvez exécuter le serveur et vous connecter avec succès (voir Unity). Si ce n'est pas le cas, envisagez de revoir vos options de build, de les réinitialiser aux valeurs par défaut, et d'ajouter progressivement des options pour voir comment elles impactent la taille de votre build. Voir aussi Unity.
Je rencontre un autre problème non mentionné nulle part dans cette documentation.
D'abord, veuillez essayer de mettre à jour votre plugin Edgegap car nous avons peut-être livré un correctif. Si cela n'aide pas, veuillez nous contacter sur notre Discord communautaire et nous enquêterons rapidement avec vous.
🧪 4. Tester le serveur localement
☑️ Vous pouvez configurer les options suivantes (ou conserver les valeurs par défaut) :
Tag d'image du serveur de l'étape précédente.
Par défaut au dernier tag que vous avez construit avec le plugin.
Paramètres optionnels docker run peuvent être fournis pour exposer plusieurs ports, ou exécuter votre image sur des machines macOS.
Vous pouvez publier plusieurs ports pour votre conteneur si nécessaire, ajoutez simplement le paramètre
-p {port interne}/{protocole}pour chacun, par exemple-p 8080/tcp -p 7770/udppour publier et mapper votre port serveur8080vers un port externe aléatoire pour la connexion TCP et le port serveur7777vers un port externe aléatoire pour la connexion UDP en même temps.Trouvez la configuration du port serveur dans votre Transport ou les paramètres spécifiques au netcode.
Si vous utilisez une machine avec une architecture ARM (macOS M1, M2, M3, etc..) vous devriez inclure ce paramètre optionnel dans vos paramètres de build Docker optionnels :
--platform=linux/amd64.
☑️ Une fois satisfait de votre configuration, cliquez sur Déployer le conteneur local, attendez la fin du processus, et vérifiez qu'il n'y a pas de nouvelles erreurs dans votre console Unity. L'achèvement de cette étape aboutira à un nouveau conteneur démarré sur votre machine de développement.
Pour plus de détails, voir Docker Desktop / Containers, ou la commande CLI Docker docker ps .
☑️ Il est maintenant temps de connecter votre client de jeu Unity Editor à votre conteneur docker local pour vérifier que votre image serveur fonctionne correctement. Trouvez vos paramètres client netcode et saisissez :
localhostou127.0.0.1(équivalent dans la plupart des cas) à la place de l'IP du serveur,valeur de port externe aléatoire trouvée dans Docker Desktop / Containers / edgegap-server-test.
✅ Vous pouvez maintenant passer à l'étape suivante.
Dépannage et FAQ
Je ne parviens pas à me connecter au conteneur docker local en utilisant mon client de jeu Unity Editor.
D'abord, assurez-vous que le statut du conteneur est Up et qu'il n'est pas Restarting ou Exited, ce qui indiquerait une exception d'exécution. Si votre conteneur ne fonctionne pas, inspectez ses logs via l'onglet Containers de Docker Desktop (cliquez sur votre conteneur) ou en utilisant
docker logs {container_id} --timestampsvia le CLI docker.Ensuite, veuillez vérifier que le paramètre de port du Network Manager de votre build serveur correspond au port publié dans Paramètres optionnels docker run. Si ce n'est pas le cas, essayez de réinitialiser ou de changer manuellement la valeur de ce champ pour qu'elle corresponde au
{container}port à votre paramètre Network Manager. Trouvez votre protocole dans vos paramètres netcode.Enfin, confirmez que les paramètres netcode du client de jeu dans votre Unity Editor utilisent le port publié dans Paramètres optionnels docker run (voir la capture d'écran ci-dessus).
(Erreur de segmentation) - vidage du core
Si vous utilisez une machine avec une architecture ARM (macOS M1, M2, M3, etc..) vous devriez inclure ce paramètre optionnel dans vos paramètres de build Docker optionnels :
--platform=linux/amd64. Si ce n'est pas le cas, essayez de réinitialiser la valeur de ce champ.
SceneId de 9120233082191360994 introuvable dans SceneObjects.
Cela pourrait signifier que la scène que vous tentez de charger n'a pas été correctement incluse dans le build, un problème connu dans les anciennes versions du plugin. Pour remédier à cela, essayez de mettre à jour votre version d'intégration netcode ou de mettre à jour votre plugin Edgegap.
http2 : server : erreur de lecture du preface depuis le client //./pipe/docker_engine : le fichier a déjà été fermé
Ceci est un problème connu avec les anciennes versions de Docker Desktop pour Windows. Veuillez mettre à jour votre application Docker Desktop et réessayer la conteneurisation.
Erreur Curl 35 : échec de la poignée de main du certificat. Erreur fatale. Code d'erreur UnityTls : 7
Cette erreur indique un problème de validation du certificat racine SSL, un problème connu dans les anciennes versions du plugin. Pour y remédier, veuillez essayer de mettre à jour votre plugin Edgegap.
☁️ 5. Téléverser sur Edgegap
☑️ Vous pouvez configurer les options suivantes (ou conserver les valeurs par défaut) :
Nom de l'application sur Edgegap peut correspondre à votre nom d'image ou être personnalisé.
Nous avons choisi de copier votre nom d'image pour l'instant.
Version de l'application sur Edgegap peut correspondre à votre tag ou être personnalisée.
Les horodatages sont une excellente option pour les noms de versions d'application, par ex.,
2024.01.30-16.50.20-UTC.Plusieurs versions d'application peuvent pointer vers le même tag d'image, comme
v1.1.0etdev.En savoir plus sur Applications et versions plus tard.
Nom de l'image du serveur de l'étape Unity.
Tag d'image du serveur de l'étape Unity.
Trouvez n'importe quel nom d'image et tag stocké sur votre machine dans Docker Desktop / Images.
☑️ Une fois satisfait de votre configuration, cliquez sur Téléverser l'image et créer une version d'application, attendez la fin du processus et vérifiez qu'il n'y a pas de nouvelles erreurs dans votre console Unity.
☑️ Vous serez redirigé vers notre Tableau de bord, où vous pouvez configurer des paramètres optionnels. L'achèvement de cette étape aboutira à une nouvelle version d'application créée, et votre artefact de build étant étiqueté et téléversé dans le registre de conteneurs d'Edgegap.
☑️ Il vous sera maintenant demandé de définir un Port pour votre nouvelle version d'application. Assurez-vous de définir la même valeur de port serveur que dans l'étape Unity de vos paramètres Transport ou spécifiques au netcode.
✅ Vous pouvez maintenant passer à l'étape suivante.
🚀 6. Déployer sur le cloud
☑️ Maintenant nous effectuerons le test final et connecterons votre client de jeu Unity Editor à votre déploiement cloud. Saisissez les détails de connexion du client de jeu depuis le :
Hôte URL pointant vers l'IP du serveur, généralement dans
NetworkManagercomposant.Port externe mappant vers le port d'écoute interne du serveur, généralement dans le composant Transport.
Dépannage et FAQ
Impossible de connecter les clients au serveur - La requête a expiré. , 请求超时 , ConnexionÉchouée , ou Échec de la vérification du port
Tout d'abord, assurez-vous que le déploiement est Prêt, et qu'il n'y a pas d'exceptions d'exécution ou d'erreurs dans le journal de votre déploiement. Si votre déploiement s'est arrêté, inspectez les logs dans notre Tableau de bord.
Si vous utilisez le netcode Mirror, vous devez avoir "Démarrage automatique du serveur" sélectionné dans votre
NetworkManager, reconstruisez, poussez et redéployez votre serveur.Si vous utilisez le netcode FishNet, vous devez activer « Démarrer en mode headless » dans votre
ServerManager, reconstruisez, poussez et redéployez votre serveur.Si vous utilisez Photon Fusion 2 netcode, assurez-vous que votre serveur transmet l'IP publique de déploiement, le port externe et le
roomCodesur le serveur, et le même code de salle dans le client dans le paramètre « NeworkRunner.StartGame » paramètreStartGameArgs. L'ID de déploiement (par ex.b63e6003b19f) est un excellent choix car il est unique au niveau mondial et facilement accessible au client par Matchmaker et Regard approfondi.Ensuite, vérifiez que votre réglage de port dans les paramètres netcode de la build serveur correspond au port interne de votre version d'application. Vous pouvez changer le mappage de ports en éditant le version d'application sans reconstruire. Trouvez votre protocole dans votre intégration netcode.
Veuillez vous assurer que votre client de jeu se connecte au port externe affiché sur la page de détails de votre déploiement, cette valeur est toujours aléatoire pour des raisons de sécurité.
Si vous utilisez le protocole Secure Websocket (WSS) dans votre intégration netcode, assurez-vous que votre version d'application configuration de port pour le port WSS a l'option TLS Upgrade activée.
Êtes-vous situé en Chine et utilisez-vous Smart Fleets ? Votre connexion peut être bloquée par le Grand Firewall. Envisagez d'ajouter un serveur situé en Chine à votre flotte, ou d'utiliser un VPN pour vous connecter.
Mon déploiement s'est arrêté/redémarré et je ne peux plus accéder à ses logs.
Dans le cas où le processus serveur plante à cause d'une exception, notre système tentera de redémarrer automatiquement le serveur. Envisagez de tester votre serveur localement pour découvrir la cause principale.
Nous ne conservons les logs que pendant la durée du déploiement ; si vous souhaitez inspecter les logs après l'arrêt du déploiement, veuillez intégrer un stockage de logs tiers.
Voir Déploiements pour découvrir toutes les causes d'arrêt de votre déploiement.
Mon déploiement s'est arrêté automatiquement après X minutes.
Les déploiements du niveau gratuit ont une limite de 60 minutes, envisagez de mettre à niveau votre compte.
Tous les déploiements seront terminés après 24 heures d'exécution conformément à notre politique de sanitation des serveurs, pour la maintenance de l'infrastructure et pour éviter des coûts imprévus lorsque le déploiement n'a pas été correctement arrêté. Pour les serveurs de longue durée, envisagez d'utiliser Flottes privées avec Persistance.
Voir Déploiements pour découvrir toutes les causes d'arrêt de votre déploiement.
Mon déploiement est prêt mais je ne peux pas me connecter pendant plusieurs minutes après.
Une fois qu'un déploiement est prêt, l'initialisation de votre moteur de jeu commence. Ce processus peut prendre de quelques secondes à plusieurs minutes, et le serveur n'accepte pas les connexions de joueurs pendant cette période.
Envisagez d'optimiser l'initialisation de votre serveur pour réduire cette durée.
Les clients de jeu devraient retenter la connexion toutes les 1 seconde pendant un temps limité (selon la durée d'initialisation), après quoi ils devraient revenir au matchmaking.
Envisagez d'ajouter une scène de chargement afin que le serveur puisse effectuer l'initialisation (et le travel dans le cas d'Unreal Engine) en même temps que les clients, tout en synchronisant l'état des deux.
Mon appareil Meta Quest renvoie HTTP 0 : Impossible de résoudre l'hôte de destination .
Lors de la compilation d'applications Unity pour la plateforme Android, l'autorisation d'accès Internet peut être supprimée automatiquement de l'APK client généré.
Rajoutez les permissions dans (nécessite de reconstruire le client ensuite) :
Project Settings / OpenXR / ⚙️ Meta Quest Support / Forcer la suppression des permissions Internet (décocher).
Player Settings / Internet Access (définir sur require).
Que se passe-t-il si un joueur quitte mon déploiement ?
Par défaut, les serveurs n'interdisent pas les connexions des joueurs. L'authentification des joueurs dépend de vos développeurs, car de nombreuses méthodes et fournisseurs d'authentification peuvent être utilisés.
Les clients de jeu peuvent stocker localement les informations de connexion pour tenter une reconnexion en cas de plantage inattendu du client.
Pour permettre aux joueurs de rejoindre des parties en cours, envisagez d'utiliser Regard approfondi ou Sessions.
Mon serveur affiche 100% d'utilisation CPU après être devenu prêt.
Cela peut ne pas être un problème, car les moteurs de jeu ont tendance à effectuer des opérations lourdes en CPU pendant l'initialisation du serveur. Si l'utilisation du CPU ne baisse pas après 2-3 minutes depuis le démarrage du déploiement, vous devrez peut-être optimiser votre serveur ou augmenter les ressources de la version d'application.
Réduire le tick rate peut impacter l'utilisation du CPU car le serveur effectue moins d'opérations de messagerie.
Si vous utilisez le netcode Mirror, vous devez avoir "Démarrage automatique du serveur" sélectionné dans votre
NetworkManager, reconstruisez, poussez et redéployez votre serveur.Si vous utilisez le netcode FishNet, vous devez activer « Démarrer en mode headless » dans votre
ServerManager, reconstruisez, poussez et redéployez votre serveur.Vous êtes limité à 1,5 vCPU et 3 Go de mémoire (RAM) dans le niveau gratuit.
Vous pouvez augmenter les ressources allouées lors de la création d'une nouvelle version d'application. Vous pouvez dupliquer votre version d'application dans notre tableau de bord et ajuster ces valeurs selon vos besoins, sans reconstruire votre serveur ou image.
Mon déploiement redémarre en boucle et affiche l'erreur OOM kill
Ceci est causé par le dépassement de la quantité de mémoire allouée. Envisagez d'optimiser l'utilisation de la mémoire avec du pooling d'objets, de la compression, ou en supprimant les objets inutiles dans votre scène.
Assurez-vous que votre projet charge la scène par défaut contenant votre
NetworkManageret que la scène est incluse dans les paramètres de Build de Unity.Vous êtes limité à 1,5 vCPU et 3 Go de mémoire (RAM) dans le niveau gratuit.
Vous pouvez augmenter les ressources allouées lors de la création d'une nouvelle version d'application. Vous pouvez dupliquer votre version d'application dans notre tableau de bord et ajuster ces valeurs selon vos besoins, sans reconstruire votre serveur ou image.
Parfois, l'utilisation de la mémoire (RAM) de mon serveur monte brusquement à une valeur élevée — est-ce un problème ?
Tant que vous restez dans la quantité de mémoire allouée à la version d'application, ce n'est pas un problème.
Dépasser la quantité de mémoire allouée à la version d'application provoquera
OOM kill(voir ci-dessus).
Les performances de mon serveur seront-elles impactées par d'autres serveurs fonctionnant sur la même machine ?
Non, notre plateforme garantit que les ressources allouées ne seront pas utilisées par d'autres studios ou d'autres serveurs sur l'infrastructure partagée. Avec Edgegap, il n'y a pas de voisins bruyants.
👉 Étapes suivantes
Arrêter les déploiements
En savoir plus sur les différentes méthodes pour arrêter les déploiements une fois que la partie est terminée et que les joueurs partent.
Pour des arrêts en douceur, nous recommandons fortement d'implémenter l'API d'auto-arrêt dans votre jeu :
Votre serveur Unity sera redémarré automatiquement en cas de crash ou d'épuisement de la mémoire.
Variables injectées
Lisez des informations utiles comme l'ID de déploiement, l'adresse IP du serveur, l'emplacement du serveur, et plus encore ; en accédant aux variables d'environnement injectées. Chaque déploiement inclut automatiquement :
Variables de déploiement - fournies automatiquement par Edgegap,
Variables de matchmaking - fournies automatiquement par Edgegap lors de l'utilisation de Matchmaker,
Variables de la version d'application - paires clé-valeur personnalisées configurables par vous.
Vérifier si l'instance actuelle est un client de jeu ou un serveur en vérifiant si la variable Edgegap est définie :
Matchmaking
Démarrer vos déploiements manuellement en collant l'URL et les ports ne suffira pas pour un jeu en ligne.
En savoir plus sur le matchmaking pour déployer automatiquement, juste à temps, lorsque les joueurs se connectent.
Optimiser les builds serveur
Reconstruisez uniquement les assets qui ont changé depuis la dernière build.
Envisagez d'utiliser les builds incrémentales de Unity pour accélérer votre temps de build.
Envisagez d'utiliser les builds incrémentales de Unity pour accélérer votre temps de build.
N'incluez que ce dont votre serveur a absolument besoin pour fonctionner.
Copier des fichiers inutilisés dans vos images entraîne un gonflement de l'image, des uploads plus longs, des vitesses de cache plus lentes et un démarrage global du serveur plus lent. Consultez les suggestions d'optimisation d'image Docker.
Désactivez le batching statique des maillages pour réduire la taille de l'image.
Compressez les maillages pour réduire la taille de l'image.
La compression des sommets n'impacte pas la taille de l'image.
Implémentez le chargement paresseux conditionnel des ressources.
Excluez les assets uniquement pour le client en désactivant la lecture/écriture CPU des textures et des maillages.
Envisagez d'utiliser Unity Addressables pour vos builds clients afin d'accélérer les builds et déploiements en chargeant les assets juste à temps, ou en sautant le chargement de certains assets dans les builds serveurs en vérifiant la présence de Variables injectées.
Envisagez d'utiliser builds Docker multi-étapes (lien).
Séparez les dépendances serveur volumineuses dans une image séparée pour les réutiliser dans des builds multi-étapes. Docker mettra en cache chaque couche et réutilisera simplement la version précédente en évitant de télécharger cette partie sauf indication contraire, vous faisant économiser de la bande passante et du temps d'attente pour la fin de l'upload.
Si vous ne savez pas pourquoi une de vos commandes Dockerfile génère une erreur, essayez de déboguer localement. Créez une nouvelle étape juste avant que le problème n'arrive (ajoutez une seconde
FROMcommande), utilisez--targetpour indiquer au processus de build de s'arrêter à l'étape problématique, puisdocker exec -it {container} /bin/bashpour entrer dans un terminal interactif à l'intérieur de votre conteneur. Ensuite, vous pouvez utiliser des commandes shell dans votre image de base pour enquêter davantage (par ex.topsur ubuntu).
Personnaliser l'image serveur
Nous supportons également l'ajout de votre propre Dockerfile pour les utilisateurs qui ont besoin de plus de contrôle sur leurs images en raison de l'optimisation de la taille de build, de dépendances superflues ou d'un processus de démarrage plus complexe. Vous pouvez optionnellement fournir un chemin vers votre Dockerfile personnalisé à l'étape Unity. Nous allons maintenant partager quelques conseils et bonnes pratiques « faites-le vous-même ».
Des problèmes lors de l'utilisation de Websockets ou de requêtes HTTPS ?
Si vous obtenez
Erreur Curl 35 : échec de la poignée de main du certificat. Erreur fatale. Code d'erreur UnityTls : 7ne désespérez pas, c'est un problème connu avec de vieilles images de base (FROM) incluant un certificat d'autorité racine expiré. Vous pouvez corriger cela en mettant à jour vers une version d'image de base plus récente (par ex.ubuntu:22.04), et en exécutantupdate-ca-certificates, ajoutez ceci à votre Dockerfile :
Vous butez contre un mur ? Nous sommes disponibles dans notre Discord communautaire et heureux de vous aider.
Mis à jour
Ce contenu vous a-t-il été utile ?

