Holesail-docker proxies traffic from another container.

Clone this repo then from within the directory run:

docker compose up --build

The easiest way to do this is to create a network in Docker:

docker network create proxy

You can then use the contaier name and port of the container you want to proxy, as exampled below.

---
services:
  holesail:
    container_name: holesail
    restart: unless-stopped
    build: .
    environment:
      MODE: server      # defaults to client
      PORT: 25565
      HOST: minecraft   # defaults to 0.0.0.0
      CONNECTOR: very-super-secret # leave this blank to generate a random secret.
    networks:
      - proxy

  mc:
    image: itzg/minecraft-server
    container_name: minecraft
    tty: true
    stdin_open: true
    restart: unless-stopped
    ports:
      - "25565:25565"
    environment:
      EULA: "TRUE"
    volumes:
      # attach the relative directory 'data' to the container's /data path
      - ./data:/data
    depends_on:
      - holesail
    networks:
      - proxy

networks:
  proxy:
    external: true 

Client mode is untested!

services:
  holesail:
    container_name: holesail
    restart: unless-stopped
    network_mode: "host"           # host mode is required
    build: .
    environment:
      MODE: client                 # defaults to client
      PORT: 8989
      HOST: 0.0.0.0                # defaults to 0.0.0.0
      CONNECTOR: very-super-secret # leave this blank to generate a random secret.

"host" network mode only works with linux. Windows and Mac are incompatible.

Description
Holesail proxy in a container
Readme 74 KiB
Languages
Shell 73.7%
JavaScript 16.1%
Dockerfile 10.2%