Metin2 İçin Docker Container Yapmak – Temel Adımlar:
1. Dockerfile (örnek)
Dockerfile
KopyalaDüzenle
FROM ubuntu:20.04
# Gerekli paketleri yükle
RUN apt update && apt install -y \
build-essential \
libstdc++6 \
libmysqlclient-dev \
libboost-system-dev \
libboost-thread-dev \
mysql-server \
screen \
libssl-dev \
liblua5.1-0 \
locales \
&& apt clean
# Dil ayarları
ENV LANG=tr_TR.UTF-8
RUN locale-gen tr_TR.UTF-8
# Oyun dosyalarını kopyala
COPY ./server /home/mt2server/
WORKDIR /home/mt2server/
# Port aç
EXPOSE 13000 13001 13002 13003 11002 11003
# Start script'i çağır
CMD ["bash", "./start.sh"]
2. docker-compose.yml (örnek)
yaml
KopyalaDüzenle
version: "3.8"
services:
metin2:
build: .
container_name: mt2_server
ports:
- "13000:13000"
- "13001:13001"
- "13002:13002"
- "13003:13003"
- "11002:11002"
- "11003:11003"
volumes:
- ./server:/home/mt2server
stdin_open: true
tty: true
restart: always
3. start.sh örneği:
bash
KopyalaDüzenle
#!/bin/bash
cd game
./#!/binl1 & ./auth & ./db
tail -f /dev/null # Container açık kalsın
Dikkat Edilmesi Gerekenler:
- Eğer server dosyaların 32-bit ise: Docker container’a lib32 paketlerini kurman gerekebilir.
- Performans sorunları için: CPU core sabitleme (taskset) veya I/O tuning önerilir.
- Bazı sistem çağrıları için --cap-add=SYS_ADMIN gibi parametreler eklenebilir.
- Volume ayarlarını doğru yaparsan log ve veri kaybı yaşamazsın.