Downloads and runs the specified (or 'latest') version of Paper from papermc.io.
321
This project aims to create a mostly generic set of Docker images for running the papermc.io projects: paper, velocity, and waterfall, with mimimal setup.
NOTE: These images do not provide papermc.io or Minecraft binaries directly, the necessary binaries are downloaded automatically at runtime.
This will start the most basic of setups:
25565 is forwarded from the hostdocker run -p 25565:25565 -e EULA="true" brandonbisel/papermc-paper
docker run -p 25565:25565 brandonbisel/papermc-velocity
docker run -p 25565:25565 brandonbisel/papermc-waterfall
By default, the paper.io apps run on the same port that Minecraft defaults to: 25565. The docker run -p option allows you to specify which port on the host machine is forwarded to the application.
docker run -p 25565:25565 -e EULA="true" brandonbisel/papermc-paper
docker run -p 51234:25565 -e EULA="true" brandonbisel/papermc-paper
Several options are exposed via environment variables.
docker run -p 25565:25565 -e VARIABLE_NAME="variable_value" -e VARIABLE_2_NAME="variable_2_value" brandonbisel/papermc-paper
PAPERMC_PROJECT_VERSION
latest - will automatically determine the latest release1.21.33.4.0-SNAPSHOTPAPERMC_PROJECT_BUILD
PAPERMC_PROJECT_VERSION.latest - will automatically determine the latest build63PAPERMC_PROJECT_CHANNEL
default - will only pull "stable" buildsexperimental, will fall back to the latest "stable" build when the latest build is not "experimental".PAPERMC_PROJECT_RAM
1G512M-Xms and -Xmx options provdided to Java when executing the applicationJAVA_OPTS
EULA
true before Minecraft Server will accept connectionsThe image defines a volume to store persistent application data, such as worlds and configuration files. By default, this is automaticall created with a randomly generated name as assigned by Docker. To specify a named volume, or persist data to the filesystem directly, explicitly mount the volume:
docker volume create my-volume
docker run -p 25565:25565 -v "my-volume:/opt/papermc/paper" -e EULA="true" brandonbisel/papermc-paper
docker volume create my-volume
docker run -p 25565:25565 -v "my-volume:/opt/papermc/velocity" brandonbisel/papermc-velocity
docker volume create my-volume
docker run -p 25565:25565 -v "my-volume:/opt/papermc/waterfall" brandonbisel/papermc-waterfall
mkdir /path/to/myfiles
docker run -p 25565:25565 -v "/path/to/myfiles:/opt/papermc/paper" brandonbisel/papermc-paper
mkdir /path/to/myfiles
docker run -p 25565:25565 -v "/path/to/myfiles:/opt/papermc/velocity" brandonbisel/papermc-velocity
mkdir /path/to/myfiles
docker run -p 25565:25565 -v "/path/to/myfiles:/opt/papermc/waterfall" brandonbisel/papermc-waterfall
Example Docker Compose files:
services:
papermc_1:
container_name: papermc_1
image: "brandonbisel/papermc-paper:latest"
volumes:
- /opt/docker/papermc_1/paper:/opt/papermc/paper
restart: unless-stopped
ports:
- "25565:25565"
environment:
EULA: "true"
PAPERMC_PROJECT_RAM: "4G"
PAPERMC_PROJECT_VERSION: "1.21.3"
services:
velocity_1:
container_name: velocity_1
image: "brandonbisel/papermc-velocity:latest"
volumes:
- "/opt/docker/velocity_1/velocity:/opt/papermc/velocity"
restart: unless-stopped
ports:
- "25565:25565"
environment:
PAPERMC_PROJECT_RAM: "1G"
networks:
minecraft_net:
driver: bridge
ipam:
config:
- subnet: 192.168.33.0/24
gateway: 192.168.33.1
services:
papermc_1:
container_name: papermc_1
image: "brandonbisel/papermc-paper:latest"
volumes:
- "/opt/docker/papermc_1/paper:/opt/papermc/paper"
restart: unless-stopped
networks:
minecraft_net:
ipv4_address: 192.168.33.100 # Velocity requires a specific IP address for proxied servers
environment:
EULA: "true"
PAPERMC_PROJECT_RAM: "4G"
PAPERMC_PROJECT_VERSION: "1.21.3"
velocity_1:
container_name: velocity_1
image: "brandonbisel/papermc-velocity:latest"
volumes:
- "/opt/docker/velocity_1/velocity:/opt/papermc/velocity"
restart: unless-stopped
ports:
- "25565:25565"
networks:
- minecraft_net
environment:
PAPERMC_PROJECT_RAM: "1G"
This project is set up to build Paper, Velocity, and Waterfall, all from the same Dockerfile. The papermc_launcher.sh script is copied to /opt/papermc/, and the contents of the respective project directory ($PAPERMC_PROJECT) are copied to /opt/papermc/papermc_setup/, to be copied into the /opt/papermc/$PAPERMC_PROJECT/ volume during the first startup.
docker build --build-arg PAPERMC_PROJECT="paper" --pull --tag "$IMAGE_NAME"
docker build --build-arg PAPERMC_PROJECT="velocity" --pull --tag "$IMAGE_NAME"
docker build --build-arg PAPERMC_PROJECT="waterfall" --pull --tag "$IMAGE_NAME"
USER
papermcGROUP
papermcUID
1001GID
1001JRE_PACKAGE
apk add ${JRE_PACKAGE})openjdk21-jreContent type
Image
Digest
sha256:c53cb666b…
Size
77.3 MB
Last updated
almost 2 years ago
docker pull brandonbisel/papermc-paper