Fighting the proot environment

If the mods want to move this to a more appropriate lace please let me know.

I have the server up and running as of now. What I want to go over is what I am doing with the server and why. What I found recently and how to fix it.

I support an open source game management panel. I have several FiveM servers and I made a custom setup for FiveM. The proot install for linux doesn’t run in the alpine container that we have, or any that I tested on outside of that. I found the proot was in an alpine layout and stripped the files out to get everything running.

Honestly that was enough.

In the latest update though libv8 is now required. This brings icu-libs and c-ares to the party as well. All I can find on libv8 is ruby. I guess that is a new scripting language that is supported. Easy fix it to remove the “citizen:scripting:v8” line and just fire up from there. Another side fix is to copy the libv8 files from the proot files into the docker container.

I get that the proot is a good way to make sure all the requirements are there, but I want a native solution with requirements not a wrapper to do that for me. A docker based solution may be another way to approach the same issue.

With the latest release I was informed that new installs we not starting. With some looking I found libv8 was missing on my system.

proot isn’t used anymore, as seen in run.sh the ld.so in the OS root is run directly nowadays.

why are you so interested in fighting the system, anyway? does the nested root still not run in your container, even though proot isn’t used anymore?

in addition, the current rootfs (alpine/) should be able to directly run in a chroot, so presumably in a container namespace as well.

It already exists here: citizenfx/server:dev

Example command line to start a simple FXS container:

 docker run --rm -it -p 30120:30120 -p 30120:30120/udp -v /your/resources/folder:/opt/cfx-server/resources -v /your/server.cfg:/opt/cfx-server/server.cfg -e SERVER_ARGS="+set citizen_dir /opt/cfx-server/citizen/ +exec server.cfg" citizenfx/server:dev

If you need newer builds (with v8 stuff), you can compile it temporarily from PR #109 or use my (temporary!) docker image hellslicer/fxserver:dev.

Edit: you need to get svadhesive from a linux build or disable it from the component list.

So we have a closed docker image with no dockerfile? I’m not down for that.

I want to also call out that the way the panel runs server I can’t use that anyways. I just need the cfx-server folder and resources for the most part. I can figure out other requirements.

I am already stripping v8 out right now while I work on some stuff. I am probably just going to go forward on stripping the v8 libs out of the folder and write them into my base image instead to have the support.

When I first set up the system proot was there and was causing failures. This is why I broke out the entire system. It was compatible with our set up. I also avoid using shell scripts as general users can edit them and get them to do nasty things. I exec the server directly with flags set as variables that get passed into the container.

If you bothered to follow @Hellslicer’s PR link, you’d find the actual source data. Docker Hub only shows Dockerfile references for repositories built using their infrastructure, which this isn’t.

It seems this topic mainly consists of your ignorance, rather than honest attempts to go with the flow.

Which means that users will not have access to the full feature set of the server. In the near future, having the server-side V8 runtime will be a requirement for bringup of core resources, if you’re intentionally removing it, that will not work anymore.

Firstly, what are you using this for? FiveM is only licensed to run on servers users fully control, providing GSP services isn’t allowed.

Secondly, you can also simply read the contents of the script and, you know, directly exec the exact same commands. This shouldn’t be an excuse for breaking system features by selectively extracting the root FS.

Anyway, a quick look shows us that we haven’t uploaded the APKBUILD for the v8 package anywhere yet, perhaps this should be done as well…

I get it, I am being a dick. I’m sorry.

I was frustrated and was venting after people started to say their servers weren’t running on fresh installs. The core dumps happen so fast the panel doesn’t catch them.

I am hosting the server for my cousin. Not making money as I only use the dedi for testing. He was on a Windows VPS and I got him to move over to a linux based dedi which has made their fivem server way more stable. He has full access to the server and everything else. I mostly just manage it for him as he’s not super savvy on linux. I got my cousin to load their 90+ mods and start testing it out. They have been on this now for a few months and have had no issues using it through the panel.

I also work on this panel and wanted to be able to control the server with it, which works great honestly. The panel has a specific setup as it uses docker containers to isolate servers and runs as a non-root user on top of that for security. I shared the setup with our community to host fivem on their own panels as well.

That is how I figured I could just strip out all the things I needed and kept trying to start it and adding apk packages to my container until it started properly. I feel, even with the ‘no proot’ change it’s still not really necessary to have all the wrappers around the files. I get that it makes it able to run on all servers by already having all the requirements there but I was stripping it down to as small as possible to save on disk space as well. I always use an alpine based container to run game servers where I can.

When i search for v8 online it’s only ruby responses. Is v8 a ruby integration for the server? This is what threw my honestly. After finding the v8 .so files in the zip I got it work with v8 enabled just fine.