Ce qui suit démarre un serveur dédié de substratum rocheux exécutant une version par défaut et exposant le port UDP par défaut:
docker run -d -it -e EULA=TRUE -p 19132:19132/udp -v mc-bedrock-data:/data itzg/minecraft-bedrock-server
Remarque : Si vous prévoyez d'exécuter un serveur plus longtemps, il est fortement recommandé d'utiliser une couche de gestion telle que Docker Compose ou Kubernetes pour permettre une reconfiguration incrémentielle et des mises à niveau d'image.
Avec la variable VERSION
définie sur "Derniter", qui est la valeur par défaut, puis le serveur de substratum rocheux peut être mis à niveau en redémarrant le conteneur. À chaque startup, le conteneur vérifie la dernière version et les mises à niveau, si nécessaire.
La dernière version d'aperçu peut être demandée en définissant VERSION
sur "Aperçu".
Pour Minecraft Java Edition, vous devrez utiliser cette image à la place:
Itzg / minecraft-server
EULA
(pas de défaut): doit être défini sur TRUE
pour accepter le contrat de licence d'utilisateur final MinecraftVERSION
(par défaut est LATEST
): peut être défini sur une version de serveur spécifique ou les valeurs spéciales suivantes peuvent être utilisées:LATEST
: détermine la dernière version (non-prévisionnelle) et peut être utilisée pour mettre à niveau automatique sur le démarrage du conteneurPREVIEW
: détermine la dernière version d'aperçu et Will Auto-mise à niveauPREVIEW
sur "true"UID
(par défaut dérivé du propriétaire /data
): peut être défini sur un ID utilisateur spécifique pour exécuter le processus du serveur de seltingGID
(par défaut dérivé de /data
): peut être défini sur un ID de groupe spécifique pour exécuter le processus du serveur de seltingTZ
(pas de défaut): peut être défini sur un fuseau horaire spécifique comme America/New_York
. Cela définira le fuseau horaire pour le conteneur Docker et donc leurs journaux. En plus, si vous souhaitez synchroniser l'heure avec l'hôte, vous pouvez monter le fichier /etc/localtime
de l'hôte vers le conteneur comme /etc/localtime:/etc/localtime:ro
.PACKAGE_BACKUP_KEEP
( 2
): combien de sauvegardes de package à conserver Les variables d'environnement suivantes définiront la propriété équivalente dans server.properties
, où chacune est décrite ici. En règle générale, chaque propriété est configurée à la place par l'équivalent supérieur_snake_case.
SERVER_NAME
GAMEMODE
FORCE_GAMEMODE
DIFFICULTY
ALLOW_CHEATS
MAX_PLAYERS
ONLINE_MODE
WHITE_LIST
ALLOW_LIST
SERVER_PORT
SERVER_PORT_V6
ENABLE_LAN_VISIBILITY
VIEW_DISTANCE
TICK_DISTANCE
PLAYER_IDLE_TIMEOUT
MAX_THREADS
LEVEL_NAME
LEVEL_SEED
LEVEL_TYPE
DEFAULT_PLAYER_PERMISSION_LEVEL
TEXTUREPACK_REQUIRED
CONTENT_LOG_FILE_ENABLED
CONTENT_LOG_LEVEL
CONTENT_LOG_CONSOLE_OUTPUT_ENABLED
COMPRESSION_THRESHOLD
COMPRESSION_ALGORITHM
SERVER_AUTHORITATIVE_MOVEMENT
PLAYER_POSITION_ACCEPTANCE_THRESHOLD
PLAYER_MOVEMENT_SCORE_THRESHOLD
PLAYER_MOVEMENT_ACTION_DIRECTION_THRESHOLD
PLAYER_MOVEMENT_DISTANCE_THRESHOLD
PLAYER_MOVEMENT_DURATION_THRESHOLD_IN_MS
CORRECT_PLAYER_MOVEMENT
SERVER_AUTHORITATIVE_BLOCK_BREAKING
SERVER_AUTHORITATIVE_BLOCK_BREAKING_PICK_RANGE_SCALAR
CHAT_RESTRICTION
DISABLE_PLAYER_INTERACTION
CLIENT_SIDE_CHUNK_GENERATION_ENABLED
BLOCK_NETWORK_IDS_ARE_HASHES
DISABLE_PERSONA
DISABLE_CUSTOM_SKINS
SERVER_BUILD_RADIUS_RATIO
ALLOW_OUTBOUND_SCRIPT_DEBUGGING
ALLOW_INBOUND_SCRIPT_DEBUGGING
FORCE_INBOUND_DEBUG_PORT
SCRIPT_DEBUGGER_AUTO_ATTACH
SCRIPT_DEBUGGER_AUTO_ATTACH_CONNECT_ADDRESS
SCRIPT_WATCHDOG_ENABLE
SCRIPT_WATCHDOG_ENABLE_EXCEPTION_HANDLING
SCRIPT_WATCHDOG_ENABLE_SHUTDOWN
SCRIPT_WATCHDOG_HANG_EXCEPTION
SCRIPT_WATCHDOG_HANG_THRESHOLD
SCRIPT_WATCHDOG_SPIKE_THRESHOLD
SCRIPT_WATCHDOG_SLOW_THRESHOLD
SCRIPT_WATCHDOG_MEMORY_WARNING
SCRIPT_WATCHDOG_MEMORY_LIMIT
OP_PERMISSION_LEVEL
EMIT_SERVER_TELEMETRY
MSA_GAMERTAGS_ONLY
ITEM_TRANSACTION_LOGGING_ENABLED
Par exemple, pour configurer un serveur créatif plat au lieu de l'utilisation par défaut:
docker run -d -it --name bds-flat-creative
-e EULA=TRUE -e LEVEL_TYPE=flat -e GAMEMODE=creative
-p 19132:19132/udp itzg/minecraft-bedrock-server
SERVER_PORT
. Le port IPv6 n'est pas exposé par défaut. Notez que vous devez ajouter /udp
lors de l'exposition du port, tel que -p 19132:19132/udp
et IPv4 et IPv6 doivent être activés sur votre machine hôte. /data
: l'emplacement où le serveur téléchargé est élargi et exécuté. Contient également les propriétés de configuration server.properties
Vous pouvez créer un named volume
et l'utiliser comme:
docker volume create mc-volume
docker run -d -it --name mc-server -e EULA=TRUE -p 19132:19132/udp -v mc-volume:/data itzg/minecraft-bedrock-server
Si vous utilisez un volume nommé et que vous souhaitez que le processus de substratum rocheux s'exécute en tant qu'utilisateur non racine, vous devrez pré-créer le volume et le chown
à l'utilisateur souhaité.
Par exemple, si vous souhaitez que le serveur de substratum rocheux s'exécute avec l'ID utilisateur 1000 et l'identifiant de groupe 1000, créez et rédigez le volume nommé "Bedrock" en utilisant:
docker run --rm -v bedrock:/data alpine chown 1000:1000 /data
Si vous utilisez docker run
, référencez simplement à ce volume "Bedrock" dans l'argument -v
. Si vous utilisez un fichier Compose, déclarez le volume comme un externe en utilisant ce type de déclaration:
volumes :
bedrock :
external :
name : bedrock
Lorsque vous exécutez le conteneur sur votre LAN, vous pouvez trouver et vous connecter au serveur dédié dans la partie "LAN Games" de l'onglet "Amis", tels que:
Le serveur dédié du substratum rocheux nécessite des autorisations définies avec Xuids. Il existe différents outils pour les rechercher en ligne et ils sont également imprimés au journal lorsqu'un joueur se joint. Il y a 3 niveaux d'autorisations et 3 options pour configurer chaque groupe:
OPS
est utilisé pour définir les opérateurs sur le serveur. -e OPS= " 1234567890,0987654321 "
MEMBERS
sont utilisés pour définir les membres sur le serveur. -e MEMBERS= " 1234567890,0987654321 "
VISITORS
sont utilisés pour définir les visiteurs sur le serveur. -e VISITORS= " 1234567890,0987654321 "
Il y a deux façons de gérer une liste blanche:
La première consiste à définir la variable d'environnement ALLOW_LIST
sur True et à mapper dans un fichier allowtlist.json (précédemment connu sous le nom de "Whitelist.json") qui est fabriqué sur mesure dans le conteneur.
L'autre consiste à définir la variable d'environnement ALLOW_LIST_USERS
dans une liste séparée par des virgules de noms d'utilisateur de balises de joueur et leurs Xuids correspondants. Chaque nom d'utilisateur doit être suivi par son XUID, séparé par un côlon. Le serveur utilisera ces détails pour correspondre au lecteur.
Il existe différents outils pour regarder des xuides en ligne et ils sont également imprimés au journal lorsqu'un joueur rejoint le serveur.
-e ALLOW_LIST_USERS= " player1:1234567890,player2:0987654321 "
Également connu sous le nom de packs de comportement ou de ressources, afin d'ajouter des mods à votre serveur, vous pouvez suivre ces étapes, testées avec OPS (un sommeil de sommeil) et BedrockTweaks
C:UsersUSERAppDataLocalPackagesMicrosoft.MinecraftUWP_*LocalStategamescom.mojang
.Si vous souhaitez les installer sans utiliser de client, vous devriez être en mesure de décompresser les mods directement dans le volume du serveur, .mcaddon devrait entrer dans comportement_packs et .mcpack dans Resource_Packs. .Mcaddon et .mcpack sont en fait renommés des fichiers .zip.
worlds/$level-name/world_behavior_packs.json
, vous devrez ajouter une entrée pour chaque mod comme sur le manifeste précédent.json, nous n'avons besoin que de l'UUID maintenant appelé pack_id et de la version remplaçant les points par des points par des points par virgules et doubles citations avec [].Vous pouvez également créer un
worlds/$level-name/world_resource_packs.json
mais j'ai vu que mettre à la fois des packs de ressources et de comportement dans le même JSON fonctionne très bien
[
{
"pack_id" : "5f51f7b7-85dc-44da-a3ef-a48d8414e4d5",
"version" : [ 3, 0, 0 ]
}
]
Si vous souhaitez forcer le pack de ressources sur tous les clients, il existe une option
texturepack-required=false
inserver.properties
qui doit être changée entrue
. Les packs de ressources peuvent être supprimés en allant dans les paramètres> Stockage> Données en cache, puis en sélectionnant le pack et en cliquant sur la poubelle.
Pour plus d'informations, Foxynotail a fait une vidéo expliquant la même chose sur un serveur exécuté sur Windows.
Pour plus d'informations sur la gestion des serveurs dédiés au substratum rocheux en général, consultez ce post Reddit.
Cette image est livrée avec un script appelé send-command
qui enverra une commande et un argument de substratum rocheux à la console du serveur de substratum rocheux. La sortie de la commande n'est visible que dans les journaux de conteneurs.
Par exemple:
docker exec CONTAINER_NAME_OR_ID send-command gamerule dofiretick false
Alternativement, avec STDIN et TTY activés (comme l'utilisation -it
), attachez la console du conteneur par son nom ou ID en utilisant:
docker attach CONTAINER_NAME_OR_ID
Lors de la connexion, vous pouvez exécuter toutes les commandes côté serveur, telles que l'option de votre lecteur pour être administrateur:
gamerule dofiretick false
Une fois terminé, détachez-vous de la console du serveur à l'aide de Ctrl-P, Ctrl-Q
Le répertoire d'exemples contient un exemple de fichier docker compose qui déclare:
/data
services :
bds :
image : itzg/minecraft-bedrock-server
environment :
EULA : " TRUE "
ports :
- " 19132:19132/udp "
volumes :
- ./data:/data
stdin_open : true
tty : true
Démarrez le serveur et exécutez en arrière-plan en utilisant:
docker compose up -d
Vous pouvez suivre les journaux à tout moment en utilisant:
docker compose logs -f
Le répertoire des exemples contient un exemple de fichier manifeste de Kubernetes qui déclare:
Le déploiement du pod comprend quelques exemples de configuration des propriétés du serveur via des variables d'environnement:
env :
- name : EULA
value : " TRUE "
- name : GAMEMODE
value : survival
- name : DIFFICULTY
value : normal
Le fichier est déployé tel quel sur la plupart des clusters, mais a été confirmé sur Docker pour Desktop et le moteur Google Kubernetes:
kubectl apply -f examples/kubernetes.yml
Vous pouvez suivre les journaux du déploiement en utilisant:
kubectl logs -f deployment/bds
@TheTinkerDad fournit un excellent tutoriel sur la façon d'accueillir plusieurs instances sur un seul port (19132) afin qu'il soit à découvrir: https://www.youtube.com/watch?v=ds0_eszjbfs
Lorsque vous essayez de créer cette image Docker, assurez-vous que tous les fichiers
.sh
ont une séquence de fin de ligne deLF
nonCLRF
ou que la construction échouera.