thijsvanloef / palworld-server-docker

A Docker Container to easily run a Palworld dedicated server.
https://hub.docker.com/r/thijsvanloef/palworld-server-docker
MIT License
2.42k stars 295 forks source link

open port 25575 in docker-compose.yml #421

Closed jojowhoooo closed 6 months ago

jojowhoooo commented 6 months ago

Describe the bug

when I use palworld-server-tool to rcon palworld-server-docker, it returns that connection refused 25575

To Reproduce

palworld-server-tool docker config as follows:

docker run -d --name palworld-tool \
-p 8080:8080 \
-m 4096M \
-v /var/run/docker.sock:/var/run/docker.sock \
-e WEB__PASSWORD="webpassword" \
-e RCON__ADDRESS="172.17.0.1:25575" \
-e RCON__PASSWORD="rconpassword" \
-e SAVE__PATH="docker://palworld-server:/palworld/Pal/Saved" \
-e SAVE__SYNC_INTERVAL=60 \
-e MANAGE__KICK_NON_WHITELIST=false \
jokerwho/palworld-server-tool:latest

Expected behavior

The external call of rcon is functioning normally.

Actual behavior

Only internal rcon calls are normal.

docker-compose.yml contents

---
services:
   palworld:
      image: thijsvanloef/palworld-server-docker:latest
      restart: unless-stopped
      container_name: palworld-server
      stop_grace_period: 30s # Set to however long you are willing to wait for the container to gracefully stop
      ports:
        # - 25575:25575
        - 8211:8211/udp
        - 27015:27015/udp
      env_file:
         -  .env
      volumes:
         -  ~/palworld:/palworld/
Diyagi commented 6 months ago

You either have to add that tools container into the palworld server network, or start both from the same stack if you dont want to expose ports.

I personally would just put both under the same stack

services:
  palworld:
    image: thijsvanloef/palworld-server-docker:latest
    restart: unless-stopped
    container_name: palworld-server
    stop_grace_period: 30s # Set to however long you are willing to wait for the container to gracefully stop
    ports:
      # - 25575:25575
      - 8211:8211/udp
      - 27015:27015/udp
    env_file:
      -  .env
    volumes:
      - ~/palworld:/palworld/

  palworld-tool:
    image: jokerwho/palworld-server-tool:latest
    container-name: palworld-tool
    mem_limit: 4096M
    ports:
      - 8080:8080/tcp
    environment:
      - WEB__PASSWORD="webpassword"
      - RCON__ADDRESS="palworld:25575"
      - RCON__PASSWORD="rconpassword"
      - SAVE__PATH="docker://palworld-server:/palworld/Pal/Saved"
      - SAVE__SYNC_INTERVAL=60
      - MANAGE__KICK_NON_WHITELIST=false
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

But if you dont want to, you can add --network palworld_default to the docker run and swap the ip from RCON__ADDRESS="172.17.0.1:25575" to RCON__ADDRESS="palworld-server:25575" to let docker deal with name resolution

Diyagi commented 6 months ago

Heres an better example (that actually works) on how i would setup my compose.

services:
  gameserver:
    image: thijsvanloef/palworld-server-docker:latest
    restart: unless-stopped
    stop_grace_period: 30s # Set to however long you are willing to wait for the container to gracefully stop
    ports:
      - 8211:8211/udp
      - 27015:27015/udp
    environment:
      PUID: 1001
      PGID: 1002
      PORT: 8211 # Optional but recommended
      PLAYERS: 32 # Optional but recommended
      SERVER_PASSWORD: serverpassword
      MULTITHREADING: true
      RCON_ENABLED: true
      RCON_PORT: 25575
      TZ: America/Sao_Paulo
      ADMIN_PASSWORD: adminpassword
      COMMUNITY: true 
      SERVER_NAME: Server Name
      SERVER_DESCRIPTION: Server Description
      PAL_EGG_DEFAULT_HATCHING_TIME: 0
      AUTO_REBOOT_ENABLED: true
      AUTO_REBOOT_CRON_EXPRESSION: 55 11 * * *
      AUTO_REBOOT_WARN_MINUTES: 5
      DISCORD_WEBHOOK_URL: webhookurl
    volumes:
      - .../palworld-data:/palworld/

  webui:
    image: jokerwho/palworld-server-tool:latest
    restart: unless-stopped
    mem_limit: 4096M
    ports:
      - 8080:8080/tcp
    environment:
      WEB__PASSWORD: webpassword
      RCON__ADDRESS: gameserver:25575
      RCON__PASSWORD: adminpassword
      SAVE__PATH: /game
      MANAGE__KICK_NON_WHITELIST: false
    volumes:
       - .../palworld-data/Pal/Saved/SaveGames:/game
    depends_on:
      gameserver:
        condition: service_healthy
thijsvanloef commented 6 months ago

as @Diyagi said this is an issue with your docker network config, please try one of the examples from @Diyagi