From 2e08562e8066571844b6780d29aa458857866027 Mon Sep 17 00:00:00 2001 From: Johannes Weidacher Date: Sat, 30 May 2020 22:30:56 +0200 Subject: [PATCH 1/6] Updated to work without network mode host --- docker-compose.yml | 17 +++++++++-------- xaseco/Dockerfile | 6 ++++-- xaseco/settings.sh | 3 ++- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 23ad474..da5d14b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,8 +1,7 @@ version: '3' services: - tmfserver: - image: lduriez/tmserver:latest - network_mode: host + tmserver: + image: toprock/tmserver:latest volumes: - ./GameData/Profiles:/opt/tmserver/GameData/Profiles - ./GameData/Scores:/opt/tmserver/GameData/Scores @@ -10,9 +9,12 @@ services: environment: SERVER_NAME: My server # if you want colours be warned that $ needs to be escaped by $ in Docker SERVER_DESC: Let's race + ports: + - 2350:2350 + - 3450:3450 + - 3450:3450/udp mysql: image: mysql:5.5 - network_mode: host volumes: - ./mysql:/var/lib/mysql environment: @@ -22,13 +24,12 @@ services: MYSQL_PASSWORD: tmfpass xaseco: image: xaseco:latest - network_mode: host depends_on: - - "tmfserver" + - "tmserver" - "mysql" environment: - MYSQL_SERVER: '172.20.0.1' + MYSQL_SERVER: 'mysql' MYSQL_LOGIN: tmf MYSQL_PASSWORD: tmfpass ASECO_MASTER_ADMIN: YOUR_TMF_LOGIN - SERVER_SA_PASSWORD: SuperAdmin + SERVER_SA_PASSWORD: SuperAdmin \ No newline at end of file diff --git a/xaseco/Dockerfile b/xaseco/Dockerfile index 386fa8d..8672f79 100644 --- a/xaseco/Dockerfile +++ b/xaseco/Dockerfile @@ -1,12 +1,13 @@ # PHP 5 is mandatory to run aseco FROM php:5.3-apache -ARG MYSQL_SERVER='172.20.0.1' +ARG MYSQL_SERVER='mysql' ARG MYSQL_LOGIN='tmf' ARG MYSQL_PASSWORD='tmfpass' ARG ASECO_MASTER_ADMIN='YOUR_TMF_LOGIN' ARG ASECO_ADMIN='YOUR_TMF_LOGIN' ARG SERVER_SA_PASSWORD='SuperAdmin' +ARG SERVER_IP='tmserver' ENV MYSQL_SERVER $MYSQL_SERVER ENV MYSQL_LOGIN $MYSQL_LOGIN @@ -14,6 +15,7 @@ ENV MYSQL_PASSWORD $MYSQL_PASSWORD ENV ASECO_MASTER_ADMIN $ASECO_MASTER_ADMIN ENV ASECO_ADMIN $ASECO_ADMIN ENV SERVER_SA_PASSWORD $SERVER_SA_PASSWORD +ENV SERVER_IP $SERVER_IP RUN mkdir -p /home/tmf/xaseco @@ -38,4 +40,4 @@ RUN rm xaseco_116.zip RUN rm settings.sh RUN apt-get autoremove -y unzip -CMD ["./wait-for-it.sh", "127.0.0.1:3306", "--", "php", "aseco.php", "TMF"] +CMD ["./wait-for-it.sh", "mysql:3306", "--", "php", "aseco.php", "TMF"] \ No newline at end of file diff --git a/xaseco/settings.sh b/xaseco/settings.sh index 45cd110..eb73c9e 100755 --- a/xaseco/settings.sh +++ b/xaseco/settings.sh @@ -5,6 +5,7 @@ sed -i "s/YOUR_MYSQL_PASSWORD/${MYSQL_PASSWORD}/ sed -i "s/localhost/${MYSQL_SERVER}/" localdatabase.xml sed -i "s/<\/masteradmins>/${ASECO_MASTER_ADMIN}<\/tmlogin><\/masteradmins>/" config.xml sed -i "s/YOUR_SUPERADMIN_PASSWORD/${SERVER_SA_PASSWORD}/" config.xml +sed -i "s/127.0.0.1/${SERVER_IP}/" config.xml sed -i "s/<\/admins>/${ASECO_ADMIN}<\/tmlogin><\/admins>/" adminops.xml sed -i "s/\tplugin.dedimania.php<\/plugin>/<\!--\tplugin.dedimania.php<\/plugin> -->/" plugins.xml -sed -i "s/\tchat.dedimania.php<\/plugin>/<\!--\tchat.dedimania.php<\/plugin> -->/" plugins.xml +sed -i "s/\tchat.dedimania.php<\/plugin>/<\!--\tchat.dedimania.php<\/plugin> -->/" plugins.xml \ No newline at end of file From 88a569b449865d132dcbf3f09609ef8b8078dedd Mon Sep 17 00:00:00 2001 From: Johannes Weidacher Date: Sun, 31 May 2020 13:35:01 +0200 Subject: [PATCH 2/6] Using MySQL 5.6 instead 5.5 --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index da5d14b..b34bbdc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,7 +14,7 @@ services: - 3450:3450 - 3450:3450/udp mysql: - image: mysql:5.5 + image: mysql:5.6 volumes: - ./mysql:/var/lib/mysql environment: @@ -23,7 +23,7 @@ services: MYSQL_USER: tmf MYSQL_PASSWORD: tmfpass xaseco: - image: xaseco:latest + image: toprock/tmserver:xaseco_alpine depends_on: - "tmserver" - "mysql" From 1e832a88c9990b524d8d79066d9802aa94b88dd9 Mon Sep 17 00:00:00 2001 From: Johannes Weidacher Date: Sun, 31 May 2020 13:38:14 +0200 Subject: [PATCH 3/6] Added Dockerfile.alpine so xaseco image is only 24MB instead of ~800 --- xaseco/Dockerfile.alpine | 49 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 xaseco/Dockerfile.alpine diff --git a/xaseco/Dockerfile.alpine b/xaseco/Dockerfile.alpine new file mode 100644 index 0000000..b917621 --- /dev/null +++ b/xaseco/Dockerfile.alpine @@ -0,0 +1,49 @@ +# PHP 5 is mandatory to run aseco +FROM alpine:3.8 + +ARG MYSQL_SERVER='mysql' +ARG MYSQL_LOGIN='tmf' +ARG MYSQL_PASSWORD='tmfpass' +ARG ASECO_MASTER_ADMIN='YOUR_TMF_LOGIN' +ARG ASECO_ADMIN='YOUR_TMF_LOGIN' +ARG SERVER_SA_PASSWORD='SuperAdmin' +ARG SERVER_IP='tmserver' + +ENV MYSQL_SERVER $MYSQL_SERVER +ENV MYSQL_LOGIN $MYSQL_LOGIN +ENV MYSQL_PASSWORD $MYSQL_PASSWORD +ENV ASECO_MASTER_ADMIN $ASECO_MASTER_ADMIN +ENV ASECO_ADMIN $ASECO_ADMIN +ENV SERVER_SA_PASSWORD $SERVER_SA_PASSWORD +ENV SERVER_IP $SERVER_IP + +RUN mkdir -p /home/tmf/xaseco + +WORKDIR /home/tmf/xaseco + +# Allows this image to be able to wait for a DB to be ready +COPY wait-for-it.sh . + +# Follow install instructions from http://www.gamers.org/tmf/quickstart.html#xaseco +COPY xaseco_116.zip . +RUN apk update &&\ + apk add unzip \ + bash \ + php5 \ + php5-xml \ + php5-mysql &&\ + unzip xaseco_116.zip -d .. &&\ + mv newinstall/*.xml . &&\ + mv newinstall/*.php ./includes/ &&\ + rm xaseco_116.zip + + +COPY settings.sh . +RUN ./settings.sh + +# Clean image + +#RUN rm settings.sh + + +CMD ["./wait-for-it.sh", "mysql:3306", "--", "php5", "aseco.php", "TMF"] \ No newline at end of file From 1abcf1add03e050fdd11a68f220b6a8319713ab1 Mon Sep 17 00:00:00 2001 From: Johannes Weidacher Date: Sun, 31 May 2020 13:40:59 +0200 Subject: [PATCH 4/6] Updated readme --- README.md | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index fd69bc0..260a7b5 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,22 @@ ## Prerequisites Have docker and docker-compose installed. ## Usage -Build the xaseco image: + +Build the xaseco alpine image: ``` -$ cd xaseco -$ ./build-image.sh -$ cd .. +docker build -t toprock/tmserver:xaseco_alpine -f .\xaseco\Dockerfile.alpine .\xaseco\ ``` + + Configure your server settings by editing the `docker-compose.yml` and the game settings in: `GameData/Tracks/MatchSettings/custom_game_settings.txt` Run the stack: ``` $ docker-compose up +``` + +Build the xaseco legacy image: +``` +$ cd xaseco +$ ./build-image.sh +$ cd .. ``` \ No newline at end of file From f8bcd7a9f5342e5097d2b0b73235dbcec3d7326f Mon Sep 17 00:00:00 2001 From: Johannes Weidacher Date: Wed, 10 Jun 2020 23:42:24 +0200 Subject: [PATCH 5/6] Implemented correct argument / environment handling on startup so you dont have to rebuild when changing settings like ASECO_ADMIN or MASTER_ADMIN --- docker-compose.yml | 14 +++++---- xaseco/Dockerfile | 36 +++++++++++----------- xaseco/Dockerfile.alpine | 49 ------------------------------ xaseco/{settings.sh => startup.sh} | 6 +++- 4 files changed, 30 insertions(+), 75 deletions(-) delete mode 100644 xaseco/Dockerfile.alpine rename xaseco/{settings.sh => startup.sh} (88%) mode change 100755 => 100644 diff --git a/docker-compose.yml b/docker-compose.yml index b34bbdc..7007507 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -23,13 +23,15 @@ services: MYSQL_USER: tmf MYSQL_PASSWORD: tmfpass xaseco: - image: toprock/tmserver:xaseco_alpine + image: toprock/tmserver:xaseco depends_on: - "tmserver" - "mysql" environment: - MYSQL_SERVER: 'mysql' - MYSQL_LOGIN: tmf - MYSQL_PASSWORD: tmfpass - ASECO_MASTER_ADMIN: YOUR_TMF_LOGIN - SERVER_SA_PASSWORD: SuperAdmin \ No newline at end of file + MYSQL_SERVER: 'mysql' #name like the service + MYSQL_LOGIN: tmf # same as MYSQL_USER + MYSQL_PASSWORD: tmfpass # same as MYSQL_PASSWORD + ASECO_MASTER_ADMIN: YOUR_TMF_LOGIN_TM #Online account name for TMNF, wont work for offline accounts + ASECO_ADMIN: ADMIN_User_Login_TM #Online account name for TMNF, wont work for offline accounts + SERVER_SA_PASSWORD: SuperAdmin # SA Password configured in tmserver + SERVER_IP: tmserver #Set this to the service / hostname of timserver \ No newline at end of file diff --git a/xaseco/Dockerfile b/xaseco/Dockerfile index 8672f79..4ec0a6e 100644 --- a/xaseco/Dockerfile +++ b/xaseco/Dockerfile @@ -1,11 +1,11 @@ # PHP 5 is mandatory to run aseco -FROM php:5.3-apache +FROM alpine:3.8 ARG MYSQL_SERVER='mysql' ARG MYSQL_LOGIN='tmf' ARG MYSQL_PASSWORD='tmfpass' -ARG ASECO_MASTER_ADMIN='YOUR_TMF_LOGIN' -ARG ASECO_ADMIN='YOUR_TMF_LOGIN' +ARG ASECO_MASTER_ADMIN='MasterAdmin' +ARG ASECO_ADMIN='Admin' ARG SERVER_SA_PASSWORD='SuperAdmin' ARG SERVER_IP='tmserver' @@ -23,21 +23,19 @@ WORKDIR /home/tmf/xaseco # Allows this image to be able to wait for a DB to be ready COPY wait-for-it.sh . - -# Follow install instructions from http://www.gamers.org/tmf/quickstart.html#xaseco +COPY startup.sh . COPY xaseco_116.zip . -RUN apt-get update && apt-get install -y --force-yes unzip php5-mysql -RUN unzip xaseco_116.zip -d .. - -RUN mv newinstall/*.xml . -RUN mv newinstall/*.php ./includes/ - -COPY settings.sh . -RUN ./settings.sh - -# Clean image -RUN rm xaseco_116.zip -RUN rm settings.sh -RUN apt-get autoremove -y unzip +# Follow install instructions from http://www.gamers.org/tmf/quickstart.html#xaseco -CMD ["./wait-for-it.sh", "mysql:3306", "--", "php", "aseco.php", "TMF"] \ No newline at end of file +RUN apk update &&\ + apk add unzip \ + bash \ + php5 \ + php5-xml \ + php5-mysql &&\ + unzip xaseco_116.zip -d .. &&\ + mv newinstall/*.xml . &&\ + mv newinstall/*.php ./includes/ &&\ + rm xaseco_116.zip + +CMD ["./startup.sh"] \ No newline at end of file diff --git a/xaseco/Dockerfile.alpine b/xaseco/Dockerfile.alpine deleted file mode 100644 index b917621..0000000 --- a/xaseco/Dockerfile.alpine +++ /dev/null @@ -1,49 +0,0 @@ -# PHP 5 is mandatory to run aseco -FROM alpine:3.8 - -ARG MYSQL_SERVER='mysql' -ARG MYSQL_LOGIN='tmf' -ARG MYSQL_PASSWORD='tmfpass' -ARG ASECO_MASTER_ADMIN='YOUR_TMF_LOGIN' -ARG ASECO_ADMIN='YOUR_TMF_LOGIN' -ARG SERVER_SA_PASSWORD='SuperAdmin' -ARG SERVER_IP='tmserver' - -ENV MYSQL_SERVER $MYSQL_SERVER -ENV MYSQL_LOGIN $MYSQL_LOGIN -ENV MYSQL_PASSWORD $MYSQL_PASSWORD -ENV ASECO_MASTER_ADMIN $ASECO_MASTER_ADMIN -ENV ASECO_ADMIN $ASECO_ADMIN -ENV SERVER_SA_PASSWORD $SERVER_SA_PASSWORD -ENV SERVER_IP $SERVER_IP - -RUN mkdir -p /home/tmf/xaseco - -WORKDIR /home/tmf/xaseco - -# Allows this image to be able to wait for a DB to be ready -COPY wait-for-it.sh . - -# Follow install instructions from http://www.gamers.org/tmf/quickstart.html#xaseco -COPY xaseco_116.zip . -RUN apk update &&\ - apk add unzip \ - bash \ - php5 \ - php5-xml \ - php5-mysql &&\ - unzip xaseco_116.zip -d .. &&\ - mv newinstall/*.xml . &&\ - mv newinstall/*.php ./includes/ &&\ - rm xaseco_116.zip - - -COPY settings.sh . -RUN ./settings.sh - -# Clean image - -#RUN rm settings.sh - - -CMD ["./wait-for-it.sh", "mysql:3306", "--", "php5", "aseco.php", "TMF"] \ No newline at end of file diff --git a/xaseco/settings.sh b/xaseco/startup.sh old mode 100755 new mode 100644 similarity index 88% rename from xaseco/settings.sh rename to xaseco/startup.sh index eb73c9e..bf9eddb --- a/xaseco/settings.sh +++ b/xaseco/startup.sh @@ -1,5 +1,6 @@ #!/bin/sh echo "Setting ENV/ARG variables" + sed -i "s/YOUR_MYSQL_LOGIN/${MYSQL_LOGIN}/" localdatabase.xml sed -i "s/YOUR_MYSQL_PASSWORD/${MYSQL_PASSWORD}/" localdatabase.xml sed -i "s/localhost/${MYSQL_SERVER}/" localdatabase.xml @@ -8,4 +9,7 @@ sed -i "s/YOUR_SUPERADMIN_PASSWORD/${SERVER_SA_PASSWORD}/" c sed -i "s/127.0.0.1/${SERVER_IP}/" config.xml sed -i "s/<\/admins>/${ASECO_ADMIN}<\/tmlogin><\/admins>/" adminops.xml sed -i "s/\tplugin.dedimania.php<\/plugin>/<\!--\tplugin.dedimania.php<\/plugin> -->/" plugins.xml -sed -i "s/\tchat.dedimania.php<\/plugin>/<\!--\tchat.dedimania.php<\/plugin> -->/" plugins.xml \ No newline at end of file +sed -i "s/\tchat.dedimania.php<\/plugin>/<\!--\tchat.dedimania.php<\/plugin> -->/" plugins.xml + + +./wait-for-it.sh "mysql:3306" "--" "php5" "aseco.php" "TMF" \ No newline at end of file From 90eb13b3a29ee25c87b140e8d9f5172206f30f34 Mon Sep 17 00:00:00 2001 From: Johannes Weidacher Date: Thu, 11 Jun 2020 00:06:58 +0200 Subject: [PATCH 6/6] added more enviroment variable control Cleaned README.md --- README.md | 9 +-------- docker-compose.yml | 2 ++ 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 260a7b5..ca80ed1 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Have docker and docker-compose installed. Build the xaseco alpine image: ``` -docker build -t toprock/tmserver:xaseco_alpine -f .\xaseco\Dockerfile.alpine .\xaseco\ +$ docker build -t toprock/tmserver:xaseco -f .\xaseco\Dockerfile .\xaseco\ ``` @@ -13,11 +13,4 @@ Configure your server settings by editing the `docker-compose.yml` and the game Run the stack: ``` $ docker-compose up -``` - -Build the xaseco legacy image: -``` -$ cd xaseco -$ ./build-image.sh -$ cd .. ``` \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 7007507..ebe0471 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,6 +9,8 @@ services: environment: SERVER_NAME: My server # if you want colours be warned that $ needs to be escaped by $ in Docker SERVER_DESC: Let's race + SERVER_SA_PASSWORD: SuperAdmin + SERVER_ADM_PASSWORD: Admin ports: - 2350:2350 - 3450:3450