diff --git a/docs/misc/examples.md b/docs/misc/examples.md index 6c287ad1..64fa7ad1 100644 --- a/docs/misc/examples.md +++ b/docs/misc/examples.md @@ -25,4 +25,50 @@ services: - ./data:/data ``` -[Source](https://github.com/itzg/docker-minecraft-server/blob/master/examples/geyser/docker-compose.yml) \ No newline at end of file +[Source](https://github.com/itzg/docker-minecraft-server/blob/master/examples/geyser/docker-compose.yml) + +## Lazytainer - Stop Minecraft container based on traffic +Monitors network traffic to the Minecraft containers. If there is traffic, the container runs, otherwise the container is stopped/paused. + +By using [Lazytainer](https://github.com/vmorganp/Lazytainer) with the [docker-minecraft-server](https://github.com/itzg/docker-minecraft-server) a somehow similar behaviour to [Lazymc](https://github.com/timvisee/lazymc) can be archived. + +```yaml +version: "3" +services: + lazytainer: + container_name: lazytainer + image: ghcr.io/vmorganp/lazytainer:master + environment: + - VERBOSE=false + ports: + - 25565:25565 + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + labels: + - lazytainer.group.minecraft.sleepMethod=stop + - lazytainer.group.minecraft.ports=25565 + - lazytainer.group.minecraft.minPacketThreshold=2 # Start after two incomming packets + - lazytainer.group.minecraft.inactiveTimeout=600 # 10 minutes, to allow the server to bootstrap. You can probably make this lower later if you want. + restart: unless-stopped + network_mode: bridge + mc: + image: itzg/minecraft-server + environment: + - EULA=TRUE + - TYPE=PURPUR + - MEMORY=4G + - TZ=Europe/Berlin + - OVERRIDE_SERVER_PROPERTIES=TRUE + volumes: + - /opt/container_volumes/minecraft/data:/data + labels: + - lazytainer.group=minecraft + depends_on: + - lazytainer + network_mode: service:lazytainer + tty: true + stdin_open: true + restart: unless-stopped +networks: {} +``` +[Source](https://github.com/itzg/docker-minecraft-server/blob/master/examples/lazytainer/docker-compose.yml) \ No newline at end of file diff --git a/examples/lazytainer/docker_compose.yml b/examples/lazytainer/docker_compose.yml new file mode 100644 index 00000000..12f45669 --- /dev/null +++ b/examples/lazytainer/docker_compose.yml @@ -0,0 +1,37 @@ +version: "3" +services: + lazytainer: + container_name: lazytainer + image: ghcr.io/vmorganp/lazytainer:master + environment: + - VERBOSE=false + ports: + - 25565:25565 + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + labels: + - lazytainer.group.minecraft.sleepMethod=stop + - lazytainer.group.minecraft.ports=25565 + - lazytainer.group.minecraft.minPacketThreshold=2 # Start after two incomming packets + - lazytainer.group.minecraft.inactiveTimeout=600 # 10 minutes, to allow the server to bootstrap. You can probably make this lower later if you want. + restart: unless-stopped + network_mode: bridge + mc: + image: itzg/minecraft-server + environment: + - EULA=TRUE + - TYPE=PURPUR + - MEMORY=4G + - TZ=Europe/Berlin + - OVERRIDE_SERVER_PROPERTIES=TRUE + volumes: + - /opt/container_volumes/minecraft/data:/data + labels: + - lazytainer.group=minecraft + depends_on: + - lazytainer + network_mode: service:lazytainer + tty: true + stdin_open: true + restart: unless-stopped +networks: {} \ No newline at end of file