Closed Dekita closed 5 months ago
the FreeType error you can ignore it, it will launch even when it show up. Are you trying with just a fresh setup without ue4ss installed on the server?
yeah its with a completely fresh setup with nothing extra.
when running locally on windows, with the freetype error, the server never connects, so i dont think it is actually launching after throwing that error :(
hmm, only thing i could think of might be your user id is not 1000? the docker image uses a non-root user that has 1000 uid, if your linux user's uid is not 1000 it could run into permission issue with the shared server folder.
if that's not the problem then i'm not really sure... maybe try disable multi-thread (pull the latest commit) and
cp env.sample .env
<uncomment line # NO_MULTITHREADING=1>
I'm also getting a similar error when trying to run it on Ubuntu, I uncommented the multi threading line in the .env file but that didn't change anything either.
i tried a different docker container for a pure linux dedicated server, and had the same error of thread not starting. found a helpful post mentioning they had the same issue on a synology nas and updating the software worked. i realized my servers last update was a few years ago, ran apt update and upgrade, and then the linux dedi server container works... but i now have the error i was getting on windows, with the truefont errors and then a single 'error' message, wont connect :(
also tried with/without multithreading. it seems to be whatever is printing the final 'error' message thats causing the issue, no idea where its coming from though :D
the single error message at the end is from the start.sh script, it means the palserver exe exited so the script hangs there in case i need to go in the docker to check stuff (docker exec -it palworld /bin/bash
)
i'm not really sure what could be the issue, i verified the setup on 2 different machines and 2 distro (arch and ubuntu). and this is the docker version i have on my ubuntu setup
~ $ docker -v
Docker version 24.0.5, build ced0996
~ $ docker compose version
Docker Compose version v2.20.2
adding libfreetype6 was something i had tried already. the error persists even after that (it just stops the truefont error messages)
still not been able to get this container running at all :(
i didn't think the libfreetype was going to fix it either, didn't notice it auto closed the issue when i merged the PR.
still no luck getting this to work either locally on windows or on a linux vps.
rented a new vps, ubuntu 20.04, docker v25.0.2, compose v2.24.5. get the exact same issue of
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
before the system says "error" and dies. I found some additional informaiton about the issue, which seems to be somewhat common? here: https://github.com/ValveSoftware/Proton/issues/6141
but havent been able to solve it on my end with any of the proposed solutions.
I've been trying to get it working as well; however, I have been able to get it to boot, I'm just not 100% certain if it is running a windows server because I haven't gotten the mods to work yet.
When I built the docker it starts the download fine then starts printing src/common/processpipe_posix.cpp (279) : invalid name/address:port string provided to BSetIpPortFromName SteamClientService_53 after validating, it says it downloads successfully but it didn't download the PalServer file to the /app/PalServer location, it went to /home/steam/.steam/steam/steamapps/common/PalServer instead.
When I tried running the server directly with docker exec I got the error wine: '/home/steam/.steam/steam/steamapps/compatdata/2394010/pfx' is not owned by you. This error is due to docker exec running at root level so I fixed it by adding gosu steam to the docker exec like so.
docker exec palworld gosu steam /home/steam/.steam/steam/compatibilitytools.d/GE-Proton8-28/proton run /home/steam/.steam/steam/steamapps/common/PalServer/Pal/Binaries/Win64/PalServer-Win64-Test-cmd.exe -port=8211 -players=32 -servername=palworld-proton
This gives the same, _wine: RLIMITNICE is <= 20, unable to use setpriority safely, error @Dekita was getting but it actually boots up a server I was able to connect to, I'm still trying to work on it to be sure it's running Windows before I make changes to the file.
the RLIMIT_NICE is <= 20 error can be ignored, server would still boot up even if changing nice value fails.
not sure why your install got installed in the wrong place, the +force_install_dir ${PalServerDir}
in the start.sh script is supposed to tell steam to install it in /app/PalServer
.
if there is a permission issue, could you try doing this before starting the container
sudo chown -R 1000:1000 ./server
this should ensure the files accessed by docker's steam user have the correct permission
if you are able to get run the server but crash when you try to load mod that's most likely because you have the ue4ss gui enabled, on this headless setup we cannot have gui enable since there's no x server and such, and it would lead to proton failing
for disabling the ue4ss gui just have to set these 2 to 0 in UE4SS-settings.ini
GuiConsoleEnabled = 0
GuiConsoleVisible = 0
Yeah not too sure why it downloaded to there either, as for the permission issue its due to running wine as a root user (docker exec only runs at root level) which is why I had to use the gosu to force it to run wine as the steam user.
As for the mods I was able to add the UE4SS files and this mod: https://www.nexusmods.com/palworld/mods/79?tab=description it didn't crash, but it just didn't do anything, but I'll try that out.
I don't think that mod works on dedicated, you can use my mod https://www.nexusmods.com/palworld/mods/182, which is specifically made to work with dedicated
just checked, and yes, if i change the start.sh code to the code below, then the log further below is shown, followed by the game client being able to connect to the server!!
PalServerDir=/home/steam/.steam/steam/steamapps/common/PalServer
CMD="$PROTON run ${PalServerDir}/Pal/Binaries/Win64/PalServer-Win64-Test-cmd.exe -port=8211 -players=9 -servername=palworld-proton"
Only tested on my local windows machine, but yea, it seems this is the issue!
ok so the under lying issue seems to be when steam run this command it some how failed to installed the server in ${PalServerDir}
and ended up in the default location.
$steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir ${PalServerDir} +login anonymous +app_update ${APPID} validate +quit || die
could you open a shell docker run -it palworld /bin/bash
and check if there's any logs in /home/steam/.steam/steam/logs
, maybe there's some useful info on why it could have failed.
got a bunch of different log files, but nothing that suggests a full failure except this in stderr.txt:
02/01 17:45:45 Init: Installing breakpad exception handler for appid(steam)/version(1705108307)/tid(41)
Steam Service Error: Failed to get Steam Service Start function
CAppInfoCacheReadFromDiskThread took 60 milliseconds to initialize
^ thats the entire contents
ok so the under lying issue seems to be when steam run this command it some how failed to installed the server in
${PalServerDir}
and ended up in the default location.$steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir ${PalServerDir} +login anonymous +app_update ${APPID} validate +quit || die
could you open a shell
docker run -it palworld /bin/bash
and check if there's any logs in/home/steam/.steam/steam/logs
, maybe there's some useful info on why it could have failed.
I made a couple changes by installing it to /palworld instead of /app/PalWorldServer and that allowed the server to start up by just starting the container. Added to the end of Dockerfile before ENTRYPOINT, and in start.sh I changed PalServerDir to /palworld
RUN mkdir -p /palworld/backup \
&& chown steam:steam /palworld
I'll keep you updated on what I find.
so it seems like if steamcmd doesn't have proper permission to install an app in the specified location from force_install_dir
it would just silently fail and fallback to default install location
can you try the branch fix_steam_install
i just pushed? i updated the start.sh
to check for directory permission and ensure the server is installed in the right place before starting
and to ensure that directory has proper permission, you can do this instead
cd palworld-docker-proton-server
sudo chown 1000:1000 ./server
docker compose up
cd palworld-docker-proton-server sudo chown 1000:1000 ./server docker compose up
Sadly no luck with that branch
palworld | Starting periodic command scheduler: cron.
palworld | uid=1000(steam) gid=1000(steam) groups=1000(steam)
palworld | mkdir: cannot create directory '/app/PalServer': Permission denied
palworld | stat: cannot statx '/app/PalServer': No such file or directory
palworld | /app/PalServer has unexpected permission != 1000:1000:755
palworld | /app/start.sh script failed, hanging forever...
same, however, i do seem to have luck if i simply disable the mounted volume for the server folder.
this line here /app/PalServer has unexpected permission != 1000:1000:755
means the steam user inside docker does not have permission to create files/directories in the ./server
directory (mounted as /app
inside docker)
what does the file permission of ./server
look like? can you run a stat
on it from the host?
$ stat server/
File: server/
Size: 54 Blocks: 0 IO Block: 4096 directory
Device: 0,38 Inode: 7873811 Links: 1
Access: (0755/drwxr-xr-x) Uid: ( 1000/ test) Gid: ( 1000/ test)
Access: 2024-02-01 10:34:17.339689329 -0800
Modify: 2024-02-01 10:34:13.176330829 -0800
Change: 2024-02-01 10:34:13.176330829 -0800
Birth: 2024-02-01 10:12:25.311952824 -0800
$ docker exec palworld2 stat /app
File: /app
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 2bh/43d Inode: 3227658 Links: 3
Access: (0775/drwxrwxr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2024-02-01 19:00:54.681853818 +0000
Modify: 2024-02-01 18:58:59.979707135 +0000
Change: 2024-02-01 19:00:54.489849139 +0000
Birth: -
Uid: ( 0/ root) Gid: ( 0/ root)
it's not supposed to owned by root, i could fix this by just forcing setting the permission of this directory before calling doing gosu steam ...
can you try updating the branch? you will have to rebuild the image:
$ cd docker
$ ./build-docker-image.sh
Lets go one problem down, that fixed the /app/PalServer issue.
good to hear, this confirms the fix so i merged the branch and close this issue
when i try to build the latest commit the terminal window that opens just immediately exits. deleted the volumes and such and same thing. apparently it cant find the docker entrypoint? think its somehow pulling from a cache even though ive deleted the volumes and renamed what the iamge gets built as..
but applying your edits into my own currently building version, the error still remains.
the only thing i've found so far to 'fix' it, is to not mount the server folder at all. which obviously then makes things a lot harder for trying to add mods etc :D
try a clean build of the image?
$ docker image ls -a|grep palserver
2:palserver-proton latest f8ebbfa4568c About an hour ago 2.95GB
$ docker image rm palserver-proton
Untagged: palserver-proton:latest
Deleted: sha256:f8ebbfa4568c91ca36ebba367060c560d06a26231e78d15779864f671ab42ff5
Deleted: sha256:e46e94e8f3387b86a374bc67026e5e1c1dbbc9c6b07f57d6fd47e27bbcbe4c51
Deleted: sha256:fae7df332b78a63bbf3df0ecaac5ca70f957c5eb9cc77c0fec080a0c43aa2fe2
Deleted: sha256:64c1a23cf1e8d4b1b48cd981ac9ed0b04c3b87981176b931d85035bde7c70ba0
Deleted: sha256:ee86a3d740d39049071c4d8a4af16413d74039f70371b7ef6c601adb4ed1f865
$ docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Deleted Images:
deleted: sha256:62c0860915897240a50f9bb4cef3d0a291ff9cc02da2e7823925e4b1e40a0d7a
deleted: sha256:39e1e410af7a4962f4df2d4117f09e7409d74ac55cd7045f54ef71d862e38e45
deleted: sha256:1140b5ef76cfd8430daa0cd122dc19028a26de3cbf10f2967fae0d96dafd845b
...
$ ./docker/build-docker-image.sh
...
also when you are trying again, make sure you do a docker compose down
first before doing docker compose up
$ docker image ls -a|grep palserver
palserver-proton latest 50274aea5464 36 minutes ago 3.27GB
$ docker image rm palserver-proton
Untagged: palserver-proton:latest
Deleted: sha256:50274aea54645fb6928092ee980e6a21ebf8ff43f933d71a1c00cd154c081db1
$ docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B
$ ./docker/build-docker-image.sh
#0 building with "default" instance using docker driver
#1 [internal] load .dockerignore
#1 transferring context: 2B done
#1 DONE 0.0s
#2 [internal] load build definition from Dockerfile
#2 transferring dockerfile: 1.19kB done
#2 DONE 0.0s
#3 [internal] load metadata for docker.io/cm2network/steamcmd:root
#3 DONE 0.5s
#4 [ 1/11] FROM docker.io/cm2network/steamcmd:root@sha256:12e1b920052e4faa6e9dc80ed0e76dd6b37ab7271d62c769b8d2d79cfe52da82
#4 DONE 0.0s
#5 [internal] load build context
#5 transferring context: 41B done
#5 DONE 0.0s
#6 [ 3/11] RUN mkdir -p /home/steam/.steam/steam
#6 CACHED
#7 [ 6/11] RUN wget -O - https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton8-28/GE-Proton8-28.tar.gz | tar -xz -C compatibilitytools.d/
#7 CACHED
#8 [ 4/11] WORKDIR /home/steam/.steam/steam
#8 CACHED
#9 [ 8/11] RUN cp -r compatibilitytools.d/GE-Proton8-28/files/share/default_pfx steamapps/compatdata/2394010
#9 CACHED
#10 [ 5/11] RUN mkdir -p compatibilitytools.d/
#10 CACHED
#11 [ 2/11] RUN apt-get update && apt-get install -y gosu cron wget python3 libfreetype6
#11 CACHED
#12 [10/11] COPY docker-entrypoint.sh /docker-entrypoint.sh
#12 CACHED
#13 [ 7/11] RUN mkdir -p steamapps/compatdata/2394010
#13 CACHED
#14 [ 9/11] RUN chown -R steam:steam /home/steam
#14 CACHED
#15 [11/11] RUN chmod +x /docker-entrypoint.sh
#15 CACHED
#16 exporting to image
#16 exporting layers done
#16 writing image sha256:50274aea54645fb6928092ee980e6a21ebf8ff43f933d71a1c00cd154c081db1 done
#16 naming to docker.io/library/palserver-proton done
#16 DONE 0.0s
$ docker compose down
Container palworld-proton Stopping
Container palworld-proton Stopped
Container palworld-proton Removing
Container palworld-proton Removed
Network palworld-proton-new_default Removing
Network palworld-proton-new_default Removed
$ docker compose up
Network palworld-proton-new_default Creating
Network palworld-proton-new_default Created
Container palworld-proton Creating
Container palworld-proton Created
Attaching to palworld-proton
palworld-proton | exec /docker-entrypoint.sh: no such file or directory
palworld-proton exited with code 0
idk why your docker decide to use cache when the entrypoint file has changed. you can try editing the ./docker/build-docker-image.sh
file, change
docker image build -t palserver-proton .
to
docker image build --no-cache -t palserver-proton .
if it doesn't work i guess it's worth trying to do a clean clone of the repo and try it with that
So.. I've tried.. still cannot get anything working and I think im just gonna give up now.. its been like 5 days that i've been fighting with these random completely unhelpful error messages, and i've not been able to write a single mod in this time or play the game.
If i download your latest repo, for some reason the docker-entrypoint.sh file cannot be found, same if i download newittalls version from the forked repo. I can see the file in the image, its right there, but the container constantly restarts with exec /docker-entrypoint.sh: no such file or directory
I've tried clearing all images from cache, restarting pc, updating docker, renaming the built image, altering the ge-proton version to ensure a full rebuild of the image, and still. issues.
I was having a similar issue, @Dekita, I had to completely delete the file from my computer and do a new git clone to a new folder, if I didn't do that it just kept using the old files too.
@NewittAll tried that unfortunately, when i was trying out your repo :( I just wanna write some server mods already lol
i get this error when trying to run on my linux machine: palworld | [ 0%] Checking for available updates... palworld | src/tier0/threadtools.cpp (4213) : Probably deadlock or failure waiting for thread to initialize. palworld | Thread failed to initialize
and this when trying to run on local windows for testing: 2024-01-28 20:21:16 Waiting for user info...OK 2024-01-28 20:21:16 Update state (0x5) verifying install, progress: 0.00 (1762 / 39195172) 2024-01-28 20:21:16 Update state (0x5) verifying install, progress: 17.11 (462917637 / 2704769513) 2024-01-28 20:21:16 Update state (0x5) verifying install, progress: 59.77 (1616532485 / 2704769513) 2024-01-28 20:21:16 Update state (0x5) verifying install, progress: 99.67 (2695861225 / 2704769513) 2024-01-28 20:21:16 Success! App '2394010' fully installed. 2024-01-28 20:21:16 Work thread 'CJobMgr::m_WorkThreadPool:1' is marked exited, but we could not immediately join prior to deleting -- proceeding without join 2024-01-28 20:21:16 starting server with: /home/steam/.steam/steam/compatibilitytools.d/GE-Proton8-28/proton run /app/PalServer/Pal/Binaries/Win64/PalServer-Win64-Test.exe -port=8211 -publicport=8211 -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS EpicApp=PalServer 2024-01-28 20:21:16 esync: up and running. 2024-01-28 20:21:16 wine: RLIMIT_NICE is <= 20, unable to use setpriority safely 2024-01-28 20:21:17 Wine cannot find the FreeType font library. To enable Wine to 2024-01-28 20:21:17 use TrueType fonts please install a version of FreeType greater than 2024-01-28 20:21:17 or equal to 2.0.5. 2024-01-28 20:21:17 http://www.freetype.org 2024-01-28 20:21:17 error
both issues result in the server not launching :P