thmhoag / arkserver

Docker image for a dedicated ARK Server with ArkManager.
MIT License
121 stars 43 forks source link

Clustering issues #1

Closed ghost closed 4 years ago

ghost commented 4 years ago

Hi there,

I am using your Docker image in a Compose environment for a few servers that I host for our small Discord community. I am trying to get clustering to work so that we can travel to different servers/maps in the cluster. When we go to an obelisk or drop and select the option to transfer to another server, it successfully presents the other servers in the cluster. When we go to transfer our survivors however, it doesn't show in the list and we have to create a new survivor every time. Would you know why this is?

My Compose file is the following:

---

version: "2"

services:
  theisland:
    container_name: ark_theisland
    image: thmhoag/arkserver
    restart: unless-stopped
    hostname: ark-theisland
    dns: 1.1.1.1
    networks:
      - ark_network
    ports:
      - "7777:7777/udp"
      - "7778:7778/udp"
      - "27015:27015/udp"
    volumes:
      - "/opt/games/ark/theisland/steam:/home/steam/Steam"
      - "/opt/games/ark/theisland/config:/ark"
      - "/opt/games/ark/cluster:/cluster"
    environment:
      - am_ark_SessionName="TheIsland"
      - am_serverMap="TheIsland"
      - am_ark_ServerAdminPassword="somesecurepassword"
      - am_ark_ServerPassword="somesecurepassword"
      - am_ark_MaxPlayers=20
      - am_ark_Port=7777
      - am_ark_QueryPort=27015
      - am_arkopt_clusterid="somethingsecret"
      - am_arkopt_ClusterDirOveride="/cluster"
      - am_arkflag_NoTransferFromFiltering=""
      - am_ark_AltSaveDirectoryName="theisland"
      - am_ark_PreventDownloadSurvivors="False"
      - am_ark_PreventDownloadItems="False"
      - am_ark_PreventDownloadDinos="False"
      - am_ark_PreventUploadSurvivors="False"
      - am_ark_PreventUploadItems="False"
      - am_ark_PreventUploadDinos="False"

  ragnarok:
    container_name: ark_ragnarok
    image: thmhoag/arkserver
    restart: unless-stopped
    hostname: ark-ragnarok
    dns: 1.1.1.1
    networks:
      - ark_network
    ports:
      - "7779:7779/udp"
      - "7780:7780/udp"
      - "27016:27016/udp"
    volumes:
      - "/opt/games/ark/ragnarok/steam:/home/steam/Steam"
      - "/opt/games/ark/ragnarok/config:/ark"
      - "/opt/games/ark/cluster:/cluster"
    environment:
      - am_ark_SessionName="Ragnarok"
      - am_serverMap="Ragnarok"
      - am_ark_ServerAdminPassword="somesecurepassword"
      - am_ark_ServerPassword="somesecurepassword"
      - am_ark_MaxPlayers=20
      - am_ark_Port=7778
      - am_ark_QueryPort=27016
      - am_arkopt_clusterid="somethingsecret"
      - am_arkopt_ClusterDirOveride="/cluster"
      - am_arkflag_NoTransferFromFiltering=""
      - am_ark_AltSaveDirectoryName="ragnarok"
      - am_ark_PreventDownloadSurvivors="False"
      - am_ark_PreventDownloadItems="False"
      - am_ark_PreventDownloadDinos="False"
      - am_ark_PreventUploadSurvivors="False"
      - am_ark_PreventUploadItems="False"
      - am_ark_PreventUploadDinos="False"

  aberration:
    container_name: ark_aberration
    image: thmhoag/arkserver
    restart: unless-stopped
    hostname: ark-aberration
    dns: 1.1.1.1
    networks:
      - ark_network
    ports:
      - "7781:7781/udp"
      - "7782:7782/udp"
      - "27017:27017/udp"
    volumes:
      - "/opt/games/ark/aberration/steam:/home/steam/Steam"
      - "/opt/games/ark/aberration/config:/ark"
      - "/opt/games/ark/cluster:/cluster"
    environment:
      - am_ark_SessionName="Aberration"
      - am_serverMap="Aberration_P"
      - am_ark_ServerAdminPassword="somesecurepassword"
      - am_ark_ServerPassword="somesecurepassword"
      - am_ark_MaxPlayers=20
      - am_ark_Port=7779
      - am_ark_QueryPort=27017
      - am_arkopt_clusterid="somethingsecret"
      - am_arkopt_ClusterDirOveride="/cluster"
      - am_arkflag_NoTransferFromFiltering=""
      - am_ark_AltSaveDirectoryName="aberration"
      - am_ark_PreventDownloadSurvivors="False"
      - am_ark_PreventDownloadItems="False"
      - am_ark_PreventDownloadDinos="False"
      - am_ark_PreventUploadSurvivors="False"
      - am_ark_PreventUploadItems="False"
      - am_ark_PreventUploadDinos="False"

networks:
  ark_network:
    driver: bridge
    driver_opts:
      com.docker.network.enable_ipv6: "false"
    ipam:
      driver: default
      config:
        - subnet: 192.168.0.0/24
          gateway: 192.168.0.1

I've also ensured that the common cluster directory is writable by the Docker container steam user UID/GID.

Any assistance here would be greatly appreciated.

thmhoag commented 4 years ago

Hey @id0827502. Off the top of my head my guess would be that the am_arkopt_ClusterDirOverride option is either not getting mapped correctly or not being honored by the server. Here would be my suggestions on a few things to try:

1) Remove the am_arkopt_ClusterDirOverride option and try using the default directory for cluster saves, which is /ark/server/ShooterGame/Saved/clusters. In the example you gave, this would result in your volume mapping looking like this: /opt/games/ark/cluster:/cluster:/ark/server/ShooterGame/Saved/clusters 2) Check and see if you can see any files in the directory that has been mounted into the container, in this case it looks like /opt/games/ark/cluster. You should see files get saved in that directory when you initiate a transfer from one server to another. 3) Make sure am_arkopt_ClusterDirOverride is spelled correctly. It's not here in your post, but I realize that could just be a typo here and not in your actual docker-compose.yml file.

At the very least I would expect the first option above to work, and from there maybe we can narrow down the cause of why it wouldn't work with am_arkopt_ClusterDirOverride.

ghost commented 4 years ago

@thmhoag I figured it out: it was a typo. am_arkopt_ClusterDirOveride was missing an 'r' in 'override'. I have tested this and it now all works.

Apologies for the trouble and thank you for replying so promptly. Your Docker image works very well.

thmhoag commented 4 years ago

@id0827502 Glad you were able to figure it out! Thanks for updating the issue here.