docker-spaceengineers icon indicating copy to clipboard operation
docker-spaceengineers copied to clipboard

Any tutorial or anything else to make the container working ?

Open kel-do opened this issue 1 year ago • 5 comments

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

kel-do avatar Aug 12 '23 10:08 kel-do

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

  • Run Space Engineer Dedicated Server as admin
  • Setup a new instance (don't use space in the name) which we will call my-se for the following steps.
  • Configure the instance
  • Start the instance
  • Check you can connect to it (so the instance configuration is working).
  • Stop the instance.
  • The instance files are located under C:\ProgramData\SpaceEngineersDedicated\my-se
  • Zip the folder of the instance.
  • Send the Zip file to your server.

On your linux server

  • [May not apply to you as you are using a gui from synology] Create a folder for the docker configuration (or clone the repo).
  • [I believe that is your missing steps] Create folders /appdata/space-engineers/instances /appdata/space-engineers/plugins /appdata/space-engineers/SpaceEngineersDedicated /appdata/space-engineers/steamcmd (you can adjust the folders location to your liking as long as the docker compose file matches)
  • Copy the instance zip file to /appdata/space-engineers/instances
  • unzip the instance zip file (all files should be in a folder inside /appdata/space-engineers/instances/my-se).
  • [If applicable] rename /appdata/space-engineers/instances/my-se/Saves/my-se SOME DATES to /appdata/space-engineers/instances/my-se/Saves/my-se (The folder inside Saves should be the exact same name as the one of your instance.
  • [May not apply to you as you are using a gui from synology] Create the docker-compose.yml file
  • Start the container

My guess for your case

  • You must create the folders needed (The docker may not create them), which is why it cannot find /root/.steam (which is the bind mount for /appdata/space-engineers/steamcmd)

  • You did not set your instance name in the config for the docker-compose. "Cannot read '/appdata/space-engineers/instances//SpaceEngineers-Dedicated.cfg" You instance name is empty, hence the //, make sure you have the environment variable set INSTANCE_NAME=my-se in your docker config. (and make sure the instance folder does exist and is populated with the correct files)

UbioZur avatar Aug 22 '23 09:08 UbioZur

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

Roskoov avatar Aug 27 '23 02:08 Roskoov

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 avatar Jan 13 '24 11:01 ptidoc

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 avatar Jan 17 '24 13:01 ptidoc

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 .

ptidoc avatar Jan 17 '24 13:01 ptidoc