Sets up the official Minecraft Bedrock Server (currently in alpha testing)
Fully operational Minecraft Bedrock edition server in a couple of minutes
Adds logging with timestamps to "logs" directory
Multiarch Support - all Docker platforms supported including Raspberry Pi
Automatic backups when container/server restarts
Supports multiple instances -- you can run multiple Bedrock servers on the same system
Updates automatically to the latest or user-defined version when server is started
Files stored in named Docker volume allowing for extremely easy access/editing and leveraging more advanced Docker features such as automatic volume backups
The server data is stored where Docker stores your volumes. This is typically a folder on the host OS that is shared and mounted with the container.
You can find your exact path by typing:
docker volume inspect yourvolumename
This will give you the fully qualified path to your volume like this:
You can then normally access the Docker volumes using the path you found in the first step with docker volume inspect
Most people will want to edit server.properties. You can make the changes to the file and then restart the container to make them effective.
Backups of the Minecraft are server are created each time the server starts and are stored in the "backups" folder
Log files with timestamps are stored in the "logs" folder.
This is useful if Microsoft hasn't released versions of the client and dedicated server at the same time so you can match whichever version your players can connect with.
You can use the QuietCurl environment variable to suppress curl's download output. This will keep your logs tidier but may make it harder to diagnose if something is going wrong. If things are working well it's safe to enable this option and turn it back off so you can see the output if you need to:
A very common problem people have with the Oracle Virtual Machine tutorials out there that typically show you how to use a free VM is that the VM is much more difficult to configure than just about any other product / offering out there.
The symptom you will have is that nobody will be able to connect. This is not because of the second set of ports that it shows after startup (that is a nearly 3-4 years now old Bedrock bug and all servers do it).
It is because there are several steps you need to take to open the ports on the Oracle VM. You need to both:
Set the ingress ports (TCP/UDP) in the Virtual Cloud Network (VCN) security list
*and* set the ingress ports in a Network Security Group assigned to your instance
Both of these settings are typically required before you will be able to connect to your VM instance. This is purely configuration related and has nothing to do with the script or the Minecraft server itself.
I do not recommend this platform due to the configuration difficulty but the people who have gone through the pain of configuring an Oracle VM have had good experiences with it after that point. Just keep in mind it's going to be a rough ride through the configuration for most people.
There is a weird bug in Hyper-V that breaks UDP connections on the Minecraft server. There are two fixes for this. The simplest fix is that you have to use a Generation 1 VM with the Legacy LAN network driver.
See the following links:
There is a second fix that was shared by bpsimons here. You need to install ethtool first with sudo apt install ethtool. Next in your /etc/network/interfaces file add "offload-tx off" to the bottom as the issue appears to be with TX offloading.
Here's an example:
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
offload-tx off
This can also be done non-persistently with the following ethtool command:
Upgraded to buildx building process for multi-arch images
Removed Box64 experimental support as it has not been working with newer builds for some time
July 24th 2025
Fixed issues with download URL
February 8th 2025
Updated dependencies
December 1st 2024
Fixed issues with download URL
May 19th 2024
Added Raspberry Pi 5 and RK3588 support
Pull image 05jchambers/legendary-bedrock-container:pi5 for 5k block size and 05jchambers/legendary-bedrock-container:pi5-16k for 16K block size
Pull image 05jchambers/legendary-bedrock-container:rk3588 for RK3588 optimized Box64 build
Fixed dependencies from latest ldd of bedrock_server
Removed OpenSSL 1.1 installation as it is no longer needed
December 13th 2023
Refresh packages and dependencies
October 1st 2023
Refresh packages and dependencies
Fix arm64 builds
January 14th 2023
Change connectivity test from google.com to papermc to prevent blocking in some countries
January 12th 2023
Remove broken ScheduleRestart environment variable -- this needs to be done in your OS using docker restart (typically with crontab in Linux or Task Scheduler in Windows)
November 19th 2022
Add "QuietCurl" environment variable which will suppress the progress meter on curl keeping the logs much tidier
Remove fixpermissions.sh and add 3 lines into main start.sh file
November 7th 2022
Fail immediately if ran without an interactive terminal (as the Minecraft server won't work without one)
October 30th 2022
Fix bug with new ScheduleRestart environment variable
October 21st 2022
Added new environment variable "BackupCount" to control the number of backups the container keeps
October 20th 2022
Added new environment variable "NoPermCheck" to skip permissions check during startup
Added new environment variable "ScheduleRestart" -- this schedules the container to shut down at a certain time which combined with the --restart switch gives daily reboot functionality
September 27th 2022
Fix SIGTERM catching in certain situations by running screen/java with the "exec" command which passes execution completely to that process (thanks vp-en)
August 29th 2022
Add TZ environment variable to set timezone
Add environment variables to docker-compose.yml template
August 22nd 2022
Add NoScreen environment variable -- disables screen which prevents needing an interactive terminal (but disables some logging)
August 12th 2022
Enable "Content Log" in default server.properties which logs errors related to resource and behavior packs
Add "Clean" environment variable to force cleaning and reinstallation of the bedrock server for troubleshooting/repair
To use it specify -e Clean=Y on your Docker container launch command line
August 10th 2022
Add nano to have an editor while inside the container (for troubleshooting)
August 2nd 2022
Added experimental Box64 support for aarch64 -- speeds things up for 64-bit ARM users
You must be running a 64-bit OS to benefit from the Box64 increased speeds (both Ubuntu and Raspberry Pi OS have 64-bit versions)
An easy way to check and make sure you are running 64 bit is to use
uname -m
which will return "aarch64" if you are on 64-bit ARM
If you are having trouble with Box64 (file an issue / leave me a comment on my site so I know about it) you can disable it by adding
-e UseQEMU=Y
to the command line to tell it to use QEMU instead of Box64
July 14th 2022
Added over a dozen new very recently introduced dependencies -- update container with docker pull 05jchambers/legendary-bedrock-container:latest to get new dependencies
Updated from Ubuntu "Impish" to Ubuntu "Latest" base image as libssl3t64 is now linked in the bedrock_server dependencies
July 13th 2022
Update base Ubuntu image
June 27th 2022
Update base Ubuntu image
Jun 11th 2022
Added allowlist.json and permissions.json default template files to prevent crashes when they are missing
Jun 7th 2022
Add docker-compose.yml template for use with docker-compose
Jun 2nd 2022
Added a couple of path safety checks and more information about what paths are being used with Version environment variable
May 31st 2022
Added default server.properties file to prevent rare container launch issue
May 27th 2022
Cleaned up qemu-user-static installation
May 26th 2022
Fixed issue with new Version environment variable that could lead to it not working
May 25th 2022
Added Version environment variable. Example: -e Version=1.19.10.20
May 22nd 2022
Fixed container launch issue on aarch64
May 21st 2022
Added multiarch Docker images
Reduced image sizes
May 17th 2022
Bump Dockerfile base image to ubuntu:latest
Add libssl1.1 manual installation baked into base image
May 15th 2022
Added screen -wipe to beginning of start.sh to prevent a startup issue that could occur if there was a "dead" screen instance (thanks grimholme, issue #2).
May 12th 2022
Added --platform=linux/amd64 to Dockerfile as on aarch64 platforms the container was not starting successfully without it (thanks Mootch, issue #1).
May 9th 2022
Initial release -- thanks to everyone who kept asking about it so I would finally put it together!