docker-spaceengineers
docker-spaceengineers copied to clipboard
Any tutorial or anything else to make the container working ?
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 ?
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 setINSTANCE_NAME=my-se
in your docker config. (and make sure the instance folder does exist and is populated with the correct files)
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
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....
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
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 .