Launch a minimal & lightweight containarized Call of Duty 2 multiplayer game server, including libcod.
Dockerfile
linksThis repository use a multi-build setup to provide images for all server binaries located in the /bin
folder.
All image tags can be found on the Docker Hub registry.
The following convention is applied:
bgauduch/cod2server:latest
- Dockerfile
master
branch.bgauduch/cod2server:3.0
- Dockerfile - equivalent to latest
on release tag.bgauduch/cod2server:X_Y_zzzzzz
X_Y
is the server binary and libcod library version in [1_0
, 1_2
, 1_3
];zzzzzz
is the server binary declination. Report to the readme in the /bin
folder for explanations.Please report to the releases section for the changelogs. Any other image tag is not supported.
cod2_lnxded
server binary from Killtube by Kung Foo Man, Mitch and anyone that contributed;libcod
from Voron00, follow the repository forks for a complete list of creators and contributors.Full credits goes to them for their awesome work !
main
folder of your original game (install directory or retail DVD) to the server:
iw_XX.iwd
from 00 to 15 to the cod2server/main
folder;localized_english_iwXX.iwd
to the cod2server/main
(it might be another language).cod2server/main/server_mp.cfg
to suits your needs:
sv_punkbuster
from 0
to 1
in the command arguments of the docker-compose.yaml
file;cod2server/main/punkbuster.cfg
configuration to suits your needs.bgauduch/cod2server
image tag in docker-compose.yaml
to choose a different server version;EXPOSE
section of the Dockerfile).From the project root:
docker-compose up -d
From the project root, you can:
docker-compose restart
# cod2_server refer to the name of the service in the compose file
docker-compose logs -f cod2_server
docker container attach call-of-duty-2-docker-server_cod2_server_1
# exemple commands
status
map_rotate
# Use the escape sequence to detach: `CTRL+P`, `CTRL+Q`
docker-compose down
If you wish to contribute to and improve this project, you can do so by cloning it and then follow theses guidelines :
./scripts/dev-up.sh
Note that you will need the game files in the main folder, as specified in the "Requirements" section.
./scripts/dev-logs.sh
Attach a shell to the running server process to run a command, see available commands in /doc/readme.md:
./scripts/dev-attach.sh
# Exemple commands
status
map_rotate
# Use the escape sequence to detach: `CTRL+P`, `CTRL+Q`
You can debug directly inside the server container (show file structure, tail logs, etc):
./scripts/dev-exec.sh
Remove everything once your tests are over:
./scripts/dev-down.sh
bin
folder, have a look at the readme
Project roadmap & issues can be tracked on the project page.
Any contribution to this project is welcome ! Feel free to open an issue to ask for help or a new feature, and it will be discussed there.
If you wish to contribute to the code, start by reading the development guidelines and then feel free to open a pull-request.
This project is under the MIT License.