Forum

ASSIST, AMERICA'S ARMY COMMUNITY - RELIVE THE GLORY DAYS OF AMERICA'S ARMY 2.5

Author Topic: Hosting Assist25 in Docker - A Crude Guide  (Read 2655 times)

0 Members and 1 Guest are viewing this topic.

Offline Sharpxe

  • Jr. Member
  • **
  • Posts: 6
    • View Profile
  • AA: Sharp
Hosting Assist25 in Docker - A Crude Guide
« on: Wednesday, March 18, 2026, 15:03:43 PM »
Hello all, I have a pretty big interest in tech and get to tinkering sometimes. I have not been able to play much, seems people are active when I can't play unfortunately, so I decided to try and host an Assist25 server in a Docker container, purely for my own amusement. It was not super easy, but with limited knowledge of Docker I was able to set one up.

Disclaimer:
Quote
I have OMV(OpenMediaVault) set up running some containers for me. I have no idea how this will perform or if its viable, without players to test. I have also only ran through this once with OMV managing docker. You could theoretically do this with Portainer or manually, but I have not tried or tested.

 The server is basic. I am also not aware of the current state of AA, doesn't seem like Punkbuster is used anymore, but some other mods took it's place? Either way, here is what I did.

First, the assist install script does not have a silent mode, that I could find, so I had to write an expect shell script to handle automated interaction. Easy enough. It looks like this:
Code: [Select]
#!/bin/expect
    set timeout -1
    spawn ./armyops250-linux.run
    expect {
        -- "--More--*" { send " "; exp_continue }
        "Do you agree with the license*"
    }
    send "Y\r"
    expect "Would you like to read the README.linux file*"
    send "n\r"
    expect "Please enter the installation path*"
    send "/svr/armyops\r"
    expect "Do you want to install*path*"
    send "n\r"
    expect "Do you want to install startup menu entries*"
    send "n\r"
    expect "Continue install*"
    send "Y\r"
    expect "Installation complete."

Next was the Dockerfile itself, I was able to get CentOS 7 working, so that is what I went with. The Dockerfile looks like this:
Code: [Select]
FROM centos:7

ENV DEBIAN_FRONTEND=noninteractive

#Use vault repos since centos 7 is not supported
RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && \
    sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

RUN yum -y update && yum -y install wget expect libgtk2 unzip gtk2.i686 && \
    yum clean all

RUN mkdir -p /svr/armyops
WORKDIR /svr/armyops

RUN wget https://sourceforge.net/projects/distrobuild/files/sources/armyops250-linux.run/download -O armyops250-linux.run \
    && chmod +x armyops250-linux.run

COPY install_aa.expect /svr/armyops/

RUN chmod +x install_aa.expect && /svr/armyops/install_aa.expect

RUN test -f /svr/armyops/armyops && test -d /svr/armyops/System && echo "Install looks good"

RUN if [ ! -f /svr/armyops/System/serverx ]; then mv /svr/armyops/System/server-bin /svr/armyops/System/serverx && chmod +x /svr/armyops/System/serverx; else :; fi

RUN wget http://downloads.sourceforge.net/project/aa25assist/Binaries/ldedisrv.zip && unzip ldedisrv.zip -d /svr/armyops/System && chmod +x /svr/armyops/System/server-bin


EXPOSE 1716 1717 1718

CMD ["/svr/armyops/System/server-bin", "GLOBAL", "SFcsar"]
#CMD ["tail", "-f", "/dev/null"]

Next, I used docker-compose to spin up the container
That looked like this:
Code: [Select]
---
services:
  server:
   image: aa
   container_name: aa-server
   volumes:
     - server_data:/svr/armyops
   ports:
     - 1716:1716/udp
     - 1717:1717/udp
     - 1718:1718/udp
   networks:
     - aa-svr
   dns:
     - 8.8.8.8
     - 8.8.4.4
networks:
  aa-svr:
   driver: bridge
volumes:
   server_data:

After starting the container, the downloader kept stopping in random spots downloading assets (hence DNS entries in docker-compose config), not sure if it was me, but stopping and starting would usually get me a little further. After the server tried to start the first time, it would crash, trying to start Entry.aao, it's like it didn't see my command, stopping it and starting it again fixed that.

After port-forwarding shenanigans, it was accessible. Apologies, this is a very crude guide, but I wanted to see if anyone else had any success with Docker.

Some key takeaways:
  • Ensuring the container has persistent storage is paramount, this is done with a named volume. Otherwise everything is fresh every time the container is brought up.
  • Using the tail -f command will allow you to enter the container for configuration if the server won't start, this can be overridden with docker-compose config as well
  • I am not an expert in Docker, just someone with a little knowlege and the ability to search the internet.

You can find my server in the list.

Happy to try and answer any questions.
« Last Edit: Wednesday, March 18, 2026, 15:15:31 PM by Sharpxe »

Offline radny

  • Jr. Member
  • **
  • Posts: 6
    • View Profile
  • AA: radny
Re: Hosting Assist25 in Docker - A Crude Guide
« Reply #1 on: Wednesday, March 18, 2026, 21:34:02 PM »
Hello.

About a month ago, I published a ready-to-download and run image:

https://hub.docker.com/r/pporadzisz/aa25-server

The above page describes how to use docker-compose for both Linux and Windows hosting.

I've listed the basic parameters for modification in docker-compose.yaml.

You can enable silent mode by installing with the --noexec parameter:

Code: [Select]
# Install main application
RUN chmod +x armyops250-linux.run \
&& ./armyops250-linux.run --noexec --target /tmp \
&& mkdir -p /usr/local/games/armyops \
&& cd /tmp \
&& tar -xjf armyops250.tar.bz2 -C /usr/local/games/armyops \
&& tar -xjf binaries.tar.bz2 -C /usr/local/games/armyops \
&& tar -xzf setupstuff.tar.gz -C /usr/local/games/armyops \
&& rm -f armyops250-linux.run

Best regards and happy gaming

Offline Sharpxe

  • Jr. Member
  • **
  • Posts: 6
    • View Profile
  • AA: Sharp
Re: Hosting Assist25 in Docker - A Crude Guide
« Reply #2 on: Thursday, March 19, 2026, 09:15:51 AM »
Hello.

About a month ago, I published a ready-to-download and run image:

https://hub.docker.com/r/pporadzisz/aa25-server

The above page describes how to use docker-compose for both Linux and Windows hosting.

I've listed the basic parameters for modification in docker-compose.yaml.

You can enable silent mode by installing with the --noexec parameter:

Code: [Select]
# Install main application
RUN chmod +x armyops250-linux.run \
&& ./armyops250-linux.run --noexec --target /tmp \
&& mkdir -p /usr/local/games/armyops \
&& cd /tmp \
&& tar -xjf armyops250.tar.bz2 -C /usr/local/games/armyops \
&& tar -xjf binaries.tar.bz2 -C /usr/local/games/armyops \
&& tar -xzf setupstuff.tar.gz -C /usr/local/games/armyops \
&& rm -f armyops250-linux.run

Best regards and happy gaming

Nice, couldn't find that noexec option, guess I didn't search hard enough, and I didn't see your post. Yours is definitely more mature. Never could get ubuntu to work myself. Curious if you packaged the assets separately or if there is a download for them? I tried to search the best I could but in the end just let the server download it after the md5 checks. Nevermind, I see what's happening, Thanks for your insight
« Last Edit: Thursday, March 19, 2026, 09:28:45 AM by Sharpxe »

Offline radny

  • Jr. Member
  • **
  • Posts: 6
    • View Profile
  • AA: radny
Re: Hosting Assist25 in Docker - A Crude Guide
« Reply #3 on: Thursday, March 19, 2026, 10:26:08 AM »
A pure Linux host is an excellent choice for a production environment, even if we're talking about a game server. Reliability and stability are key. I encourage you to continue your education in this field, as it can be a great passion :)
The quality of your internet connection is also an important factor. And sometimes your home connection may be insufficient.

Another risk factor is some very sensitive algorithms that filter traffic on your home router. These can cause players to be cut off from your server because they consider the traffic a UDP flood attack on your home network.

 

Download Assist

×

Download Game Client

Important: Battletracker no longer exists. However, old Battletracker accounts may still work. You can create a new 25Assist account here

Download Server Manager