Devidian / docker-spaceengineers

A Docker for Space Engineers Dedicated Server
87 stars 21 forks source link

Any tutorial or anything else to make the container working ? #50

Closed kel-do closed 3 months ago

kel-do commented 1 year ago

Hello guys,

I would like to have a dedicated server working in a docker container (I used it for Valheim, it worked fine and would try for Space Engineers) hosted on a Synology DS918+.

I downloaded (from the docker interface built on Synology desktop) Devidian/Docker-Spaceengineer image, mounted it and created a container. But after launch, the container failed after few seconds. It seems that I am missing steam dedicated server ...

I have absolutely no idea of what to do (as I am a real noob), and was wondering if someone knows (or could write ? <3) a "tutorial" for newbies to help me with docker and this image, a "step by step" explanation would be perfect.

Any idea ?

Capture d’écran 2023-08-12 122540

UbioZur commented 1 year ago

My guess is that you did not create the folders needed for the bind mount.

I don't have a synology to test, but here are the step by step I have finally managed to get working (just today).

On a windows machine

On your linux server

My guess for your case

Roskoov commented 12 months ago

Hello,

I had the same problem #38 , are you on the last DSM version ? Because in 7.1 i had this issue, now it's ok

ptidoc commented 7 months ago

hey after hours of trying to do this step by step tutorial, i'm hanging on the same trooble. my directories are created, my instance is well rename too and i don't know why docker can't create symlink ( no such file or directory ). I don't understand why the appdata is not on the docker file. I was thinking it is a privilege problem but .... i 've surly missed something....

ptidoc commented 7 months ago

HI there here is a solution for problems: files not found. steam or server config or whatever. I need to correct some things in the installation procedure.

First of all I recommand to not install the Devidian image ( sorry dude but this image may be part ot the problem sometimes. I recommand to use the wonderfull work of Devididian & co in that way, for me it solved the problems

use your home directory and create your directory for the docker cd / home mkdir space-engineers

then dl on it the repository of devidian ( all files )

create your own server via windows with your mods and stuf like that and create te directories as mentionned by Devidian few post earlier /appdata/space-engineers/instances /appdata/space-engineers/plugins /appdata/space-engineers/SpaceEngineersDedicated /appdata/space-engineers/steamcmd

Put your server files on the instance directory

Here is a part of the problem one:

DO NOT RENAME THE SAVE DIRECTORY SUBFOLDERS WITH THE NAME OF YOUR INSTANCE ( this is the first error. RENAME THE SUBDIROCTRY on that way appdata\space-engineers\instances\YourInstanceName\Saves\yourgamename + Date by appdata\space-engineers\instances\YourInstanceName\Saves\yourgamename

In fact if you edit your server config files (Spaceengineersdedicatedserver.cfg you'll see that the server is loading something different than your instance name . That is a big part of the probleme

Now, an other problem is the use of strict path in the docker-compose.yml

If you are using as i recommand the repository your docker-compose.yml is like this:

`version: '3.8'

services: se-server: build: . image: should be replace or completed if empty by the name of your choice container_name: se-ds-docker restart: unless-stopped volumes:

left side: your docker-host machine

  # right side: the paths in the image (!!do not change!!)
  - ./appdata/space-engineers/plugins/:/appdata/space-engineers/plugins
  - ./appdata/space-engineers/instances/:/appdata/space-engineers/instances
  - ./appdata/space-engineers/SpaceEngineersDedicated/:/appdata/space-engineers/SpaceEngineersDedicated
  - ./appdata/space-engineers/steamcmd/:/root/.steam
ports:
  - target: 27016
    published: 27016
    protocol: udp
    mode: host
  - target: 8080
    published: 18080
    protocol: tcp
    mode: host
environment:
  - WINEDEBUG=-all
  - INSTANCE_NAME=The NAME OF THE INSTANCES SUBFOLDER
  - PUBLIC_IP=YOUR IP ADRESS
  # public ip required for healthcheck

` Pay attention that i've add a . bfore the / in the volume line

the fact is that if u use absolute path it may be missinterpreted by the system So, use relative path ( which means to the docker-compose command to interpret the root directory at the place where is executed the docker-compose.yml

Make your change and , sorry this is not the end .... you'll need to edit the Dockerfile ( your at the end

Look the line copy winetricks.sh /root

after the RUN command add chmod a+rx /root/winetricks.sh &&\ The line is now RUN chmod a+rx /root/winetricks.sh &&\ do not tuch the other line of that block

Look the line COPY healthcheck.sh /root/ Add after that RUN chmod a+rx /root/healthcheck.sh

Look at the line COPY entrypoint.sh /root/ Add after that RUN chmod a+rx /root/healthcheck.sh

What have we done exactly in this procedure:

First off all we have suppress the image of devidian and as to docker-compose to rebuild an new image with your own stuff / configuration. If you missed to respect something or if you don't have understand well what you needed to do, it will fixe part of the problem

Editing theDockerfile is necessary because for some reasons during the installation the wintricks build script didn't execute well ( for permission reasons) so, at least this work

The two other script was not well executed during the up of the docker so i tried to fixed it by the same method and, finally it works

Now you need to build the image don't panik this will be done with the same method:

move on your /home/user/document/mydocker ( name where is your docker-compose.yml ) docker-compose up -d build time for me 15 / 25mn max

if no error: after that docker-compose up and .... i'll pray for it, enjoy

this takes me 3 / 4 days of works because i'm a beginner in docker. Hope this will help you

ptidoc commented 7 months ago

docker.zip

Here is the two docker file i've used. For the Dockerfile just put it on your server. For the docker-compose put it on your server edit it and modify where indicated .