Skip to content

PaperSpigot Docker. Easy to use and clean docker image for running paper spigot servers in docker containers using OpenJDK. WIP

License

Notifications You must be signed in to change notification settings

felixklauke/paper-docker

Repository files navigation

paperspigot-docker

Easy to use and clean Docker image for running Paper Spigot servers in Docker containers using OpenJDK.

You may also be interested in waterfall-docker and velocity-docker if you want to build a whole server network.

Getting started

The easiest way for a quick start would be:

docker run -it \
    -p 25565:25565 \
    -v ~/minecraft/config:/opt/minecraft/config \
    -v ~/minecraft/worlds:/opt/minecraft/worlds \
    -v ~/minecraft/plugins:/opt/minecraft/plugins \
    -v ~/minecraft/data:/opt/minecraft/data \
    -v ~/minecraft/logs:/opt/minecraft/logs \
    felixklauke/paperspigot:1.16.5

Tags and Versions

The Docker images are tagged for their Minecraft versions. These versions are currently available:

  • felixklauke/paperspigot:1.16.5
  • felixklauke/paperspigot:1.16.4
  • felixklauke/paperspigot:1.16.3
  • felixklauke/paperspigot:1.16.2
  • felixklauke/paperspigot:1.16.1
  • felixklauke/paperspigot:1.15.2
  • felixklauke/paperspigot:1.15.1
  • felixklauke/paperspigot:1.15
  • felixklauke/paperspigot:1.14.4
  • felixklauke/paperspigot:1.14.3
  • felixklauke/paperspigot:1.14.2
  • felixklauke/paperspigot:1.14.1
  • felixklauke/paperspigot:1.14
  • felixklauke/paperspigot:1.13.2
  • felixklauke/paperspigot:1.13.1
  • felixklauke/paperspigot:1.13
  • felixklauke/paperspigot:1.12.2
  • felixklauke/paperspigot:1.12.1
  • felixklauke/paperspigot:1.12
  • felixklauke/paperspigot:1.11.2
  • felixklauke/paperspigot:1.10.2
  • felixklauke/paperspigot:1.9.4
  • felixklauke/paperspigot:1.8.8

The specific images are updated by hand. The 1.x-latest images will update at nightly builds and will always use the latest build.

Volumes

There are five volumes which are used for:

  • Worlds
  • Plugins
  • Config files (paper.yml, bukkit.yml, spigot.yml, server.properties, commands.yml)
  • Data (banned-ips.json, banned-players.json, help.yml, ops.json, permissions.yml, whitelist.json)
  • Logs

You can find the mount locations in docker-compose.yml.

docker-compose.yml

Bind Mounts

This method is recommended if you have an already existing server which you wish to run inside a container due to the way bind mounts behave. You can add this simple entry to your docker-compose.yml when using bind mounts:

version: '3.7'

services:
  minecraft:
    image: felixklauke/paperspigot:1.16.5
    container_name: minecraft
    stdin_open: true
    tty: true
    restart: always
    networks:
      - minecraft
    ports:
      - 25565:25565
    volumes:
      - ./config:/opt/minecraft/config
      - ./worlds:/opt/minecraft/worlds
      - ./plugins:/opt/minecraft/plugins
      - ./data:/opt/minecraft/data
      - ./logs:/opt/minecraft/logs

networks:
  minecraft: {}

Volumes

If you want to use explicit volumes, you can use this:

version: '3.7'

services:
  minecraft:
    image: felixklauke/paperspigot:1.16.5
    container_name: minecraft
    stdin_open: true
    tty: true
    restart: always
    networks:
      - minecraft
    ports:
      - 25565:25565
    volumes:
      - minecraft-config:/opt/minecraft/config
      - minecraft-worlds:/opt/minecraft/worlds
      - minecraft-plugins:/opt/minecraft/plugins
      - minecraft-data:/opt/minecraft/data
      - minecraft-logs:/opt/minecraft/logs

volumes:
  minecraft-config: {}
  minecraft-worlds: {}
  minecraft-plugins: {}
  minecraft-data: {}
  minecraft-logs: {}

networks:
  minecraft: {}

See Also