jusito / docker-ttt

GMOD TTT server image

Home Page:https://hub.docker.com/r/jusito/docker-ttt

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

No apple M1/M2 support

alexstaeding opened this issue · comments

This simple docker-compose works in a debian 12 VM, but not on macOS.
Using a MacBook Pro M2 with macOS Sonoma.

~ ❯ docker-compose --version                                           19:55:00
Docker Compose version v2.23.0-desktop.1
~ ❯ docker --version                                                   19:55:07
Docker version 24.0.7, build afdd53b4e3
version: '3.8'

services:
  server:
    image: jusito/docker-ttt:gmod_ttt_debian
    container_name: ttt-server
    ports:
      - "27015:27015/tcp"
      - "27015:27015/udp"
    environment:
      - SERVER_PORT=27015
      - INSTALL_CSS=true
      - WORKSHOP_COLLECTION_ID=2176094350
      - SERVER_NAME=My Server
      - SERVER_PASSWORD=server-password
      - SERVER_DEFAULT_MAP=ttt_waterworld
[+] Building 0.0s (0/0)                                                                                                                                                                                                                                           docker:desktop-linux
[+] Running 3/0
 ✔ Network ttt_default                                                                                                                                   Created                                                                                                                  0.0s 
 ✔ Container ttt-server                                                                                                                                  Created                                                                                                                  0.0s 
 ! server The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested                                                                                                                          0.0s 
Attaching to ttt-server
ttt-server  | [entrypoint.sh]starting entrypoint.sh
ttt-server  | [entrypoint.sh]installing...
Installed Garrys Mod server as gmodserver
ttt-server  | 
ttt-server  | Remember to check server ports
ttt-server  | ./gmodserver details
ttt-server  | 
fetching GitHub core_trap.sh...OK
ttt-server  | fetching GitHub _default.cfg...OK
ttt-server  | copying _default.cfg...OK
ttt-server  | fetching GitHub check_ip.sh...OK
ttt-server  | fetching GitHub info_game.sh...OK
ttt-server  | fetching GitHub common.cfg...OK
ttt-server  | fetching GitHub secrets-common.cfg...OK
ttt-server  | fetching GitHub gmodserver.cfg...OK
ttt-server  | fetching GitHub secrets-gmodserver.cfg...OK
ttt-server  | fetching GitHub linuxgsm.sh...OK
ttt-server  | fetching GitHub core_getopt.sh...OK
ttt-server  | fetching GitHub command_install.sh...OK
ttt-server  | fetching GitHub check.sh...OK
ttt-server  | fetching GitHub check_version.sh...OK
ttt-server  | fetching GitHub check_tmuxception.sh...OK
ttt-server  | fetching GitHub check_permissions.sh...OK
ttt-server  | fetching GitHub check_glibc.sh...OK
ttt-server  | fetching GitHub info_distro.sh...OK
ttt-server  | Cannot open netlink socket: Protocol not supported
ttt-server  | Cannot open netlink socket: Protocol not supported
ttt-server  | Cannot open netlink socket: Protocol not supported
ttt-server  | fetching GitHub check_system_requirements.sh...OK
ttt-server  | Cannot open netlink socket: Protocol not supported
ttt-server  | Cannot open netlink socket: Protocol not supported
ttt-server  | Cannot open netlink socket: Protocol not supported
ttt-server  | fetching GitHub install_header.sh...OK
ttt-server  | 

ttt-server  |                                 mdMMMMbm
ttt-server  |                               mMMMMMMMMMMm
ttt-server  |                               mMMMMMMMMMMMMm
ttt-server  |                              mMMMMMMMMMMMMMMm
ttt-server  |                              hMMMV^VMMV^VMMMh
ttt-server  |                              MMMMM  MM  MMMMM
ttt-server  |                              hMMs   vv   sMMh
ttt-server  |                             hMMM:        :MMMh
ttt-server  |                           .hMMMh          hMMMh.
ttt-server  |                          -dMMMh     __     hMMMd-
ttt-server  |                         :mMMMs      ||      sMMMm:
ttt-server  |                        :MMMM+       || _     +NMMN:
ttt-server  |                       .mMMM+     ========     +MMMm.
ttt-server  |                       yMMMy   ##############   yMMMy
ttt-server  |                       mMMM:   ##############   :MMMm
ttt-server  |                       mMM   nn   nn    nn   nn   MMm
ttt-server  |                       o   nNNNNNNNn    nNNNNNNNn   o
ttt-server  |                          nNNNNNNNNNn  nNNNNNNNNNn
ttt-server  |                         nNNNNNNNNNNN  NNNNNNNNNNNn
ttt-server  |                          +NNNNNNNNN:  :NNNNNNNNN+
ttt-server  |                            nNNNNNNN /\ NNNNNNNn
ttt-server  |                              nnnnn  db  nnnnn
ttt-server  | 
ttt-server  | 888      d8b                             .d8888b.   .d8888b.  888b     d888
ttt-server  | 888      Y8P                            d88P  Y88b d88P  Y88b 8888b   d8888
ttt-server  | 888                                     888    888 Y88b.      88888b.d88888
ttt-server  | 888      888 88888b.  888  888 888  888 888          Y888b.   888Y88888P888
ttt-server  | 888      888 888  88b 888  888  Y8bd8P  888  88888      Y88b. 888 Y888P 888
ttt-server  | 888      888 888  888 888  888   X88K   888    888        888 888  Y8P  888
ttt-server  | 888      888 888  888 Y88b 88Y .d8pq8b. Y88b  d88P Y88b  d88P 888   *   888
ttt-server  | LinuxGSM 888 888  888  Y8888Y  888  888   Y2012P88   Y8888P   888       888
ttt-server  | 
ttt-server  | =================================
ttt-server  | LinuxGSM_
ttt-server  | by Daniel Gibbs
ttt-server  | Version: v23.5.3
ttt-server  | Game: Garry's Mod
ttt-server  | Website: https://linuxgsm.com
ttt-server  | Contributors: https://linuxgsm.com/contrib
ttt-server  | Sponsor: https://linuxgsm.com/sponsor
ttt-server  | =================================
ttt-server  | fetching GitHub install_server_dir.sh...OK
ttt-server  | 
ttt-server  | Server Directory
ttt-server  | =================================
ttt-server  | Warning! A server is already installed here.
ttt-server  | /home/steam
ttt-server  | fetching GitHub install_logs.sh...OK
ttt-server  | 
ttt-server  | Creating log directories
ttt-server  | =================================
ttt-server  | installing log dir: /home/steam/log...OK
ttt-server  | installing LinuxGSM log dir: /home/steam/log/script...OK
ttt-server  | creating LinuxGSM log: /home/steam/log/script/gmodserver-script.log...OK
ttt-server  | installing console log dir: /home/steam/log/console...OK
ttt-server  | creating console log: /home/steam/log/console/gmodserver-console.log...OK
ttt-server  | installing game log dir: /home/steam/serverfiles/garrysmod/logs...OK
ttt-server  | creating symlink to game log dir: /home/steam/log/server -> /home/steam/serverfiles/garrysmod/logs...OK
ttt-server  | fetching GitHub check_deps.sh...OK
ttt-server  | 
ttt-server  | Checking Dependencies
ttt-server  | =================================
ttt-server  | Cannot open netlink socket: Protocol not supported
ttt-server  | Cannot open netlink socket: Protocol not supported
ttt-server  | Cannot open netlink socket: Protocol not supported
ttt-server  | Cannot open netlink socket: Protocol not supported
ttt-server  | Cannot open netlink socket: Protocol not supported
ttt-server  | Cannot open netlink socket: Protocol not supported
fetching GitHub debian-10.csv...OK
ttt-server  | bc
ttt-server  | binutils
ttt-server  | bsdmainutils
ttt-server  | bzip2
ttt-server  | ca-certificates
ttt-server  | cpio
ttt-server  | curl
ttt-server  | distro-info
ttt-server  | file
ttt-server  | gzip
ttt-server  | hostname
ttt-server  | jq
ttt-server  | lib32gcc1
ttt-server  | lib32stdc++6
ttt-server  | libsdl2-2.0-0:i386
ttt-server  | libtinfo5:i386
ttt-server  | netcat
ttt-server  | python3
ttt-server  | tar
ttt-server  | tmux
ttt-server  | unzip
ttt-server  | util-linux
ttt-server  | uuid-runtime
ttt-server  | wget
ttt-server  | xz-utils
ttt-server  | Information! Required dependencies already installed.
ttt-server  | fetching GitHub install_steamcmd.sh...OK
ttt-server  | 
ttt-server  | Installing SteamCMD
ttt-server  | =================================
ttt-server  | fetching GitHub check_steamcmd.sh...OK
ttt-server  | fetching GitHub core_steamcmd.sh...OK
######################################################################## 100.0%
ttt-server  | OK
ttt-server  | extracting steamcmd_linux.tar.gz...OK
ttt-server  | fetching GitHub install_server_files.sh...OK
ttt-server  | 
ttt-server  | Installing Garry's Mod Server
ttt-server  | =================================
ttt-server  | fetching GitHub update_steamcmd.sh...OK
ttt-server  | Cannot open netlink socket: Protocol not supported
ttt-server  | Cannot open netlink socket: Protocol not supported
ttt-server  | Cannot open netlink socket: Protocol not supported
ttt-server  | Cannot open netlink socket: Protocol not supported
ttt-server  | Cannot open netlink socket: Protocol not supported
ttt-server  | Cannot open netlink socket: Protocol not supported
[ START ] Installing gmodserver: SteamCMD
ttt-server  | Complete! Installing gmodserver: SteamCMD
[ ERROR ] Installing gmodserver: No appmanifest_4020.acf found
[ INFO ] Installing gmodserver: Forcing update to correct issue
[ START ] Installing gmodserver: SteamCMD
ttt-server  | Complete! Installing gmodserver: SteamCMD
[ FAIL ] Installing gmodserver: Still no appmanifest_4020.acf found
ttt-server  | fetching GitHub core_exit.sh...OK
ttt-server  | [entrypoint.sh]update / installation done!
ttt-server  | [prepareServer.sh]check configurations
ttt-server  | [initConfig.sh]Request for replacing hostname to "My Server", source is found 1 times
ttt-server  | [initConfig.sh]Request for replacing sv_password to "server-password", source is found 1 times
ttt-server  | [initConfig.sh]Request for replacing sv_voiceenable to "1", source is found 1 times
ttt-server  | [prepareServer.sh]force workshop download
ttt-server  | [forceWorkshopDownload.sh]processing workshop collection 2176094350
ttt-server  | [prepareServer.sh]install & mount gamefiles
ttt-server  | [installAndMountAddons.sh]installing & mounting css
ttt-server exited with code 1

its another cpu architecture and the same issue as: #3 (comment)

I don't think it's entirely due to the different architecture itself - otherwise, it would refuse to start with the same error as in #3 standard_init_linux.go:211: exec user process caused "exec format error".

macOS' translation layer Rosette can run amd64 programs, and this is used by default if an image does natively support the arm architecture.

I even specified the platform explicitly, which leads to an identical result (as above).

 services:
   server:
     image: jusito/docker-ttt:gmod_ttt_debian
+    platform: linux/amd64
     container_name: ttt-server
     ports:
       - "27015:27015/tcp"

In theory, the automatic translation should work; I don't know if something can be done in this image to fix the error related to the file. Searching for the problematic file serverfiles/steamapps/appmanifest_4020.acf, I found this: GameServerManagers/LinuxGSM#3143 (comment)
I haven't looked deeply into it myself, so I don't know how relevant that is.

Also: any solution using Rosetta would only be a "nice to have" as this translation is only provided on a "best effort" basis.

thanks for the info, didn't know about this feature. Your best effort link shows issues with debian-10 because its outdated, updated develop to 12 maybe it will fix it. Ah and also added a very simplistic way of logging console to container log.

Was you able to test the recent "-develop" image on your M2 ?

Was you able to test the recent "-develop" image on your M2 ?

Sorry for the late update. Yes, I did try it. Unfortunately, it ends with the same error.

I correct, it is slightly different:

At the very least, there is now an additional warning/error "integer expression expected"

ttt-server  | Checking Garry's Mod Dependencies
ttt-server  | =================================
fetching GitHub debian-12.csv...OK
ttt-server  | bc
ttt-server  | binutils
ttt-server  | bsdmainutils
ttt-server  | bzip2
ttt-server  | ca-certificates
ttt-server  | cpio
ttt-server  | curl
ttt-server  | distro-info
ttt-server  | file
ttt-server  | gzip
ttt-server  | hostname
ttt-server  | jq
ttt-server  | lib32gcc-s1
ttt-server  | lib32stdc++6
ttt-server  | libsdl2-2.0-0:i386
ttt-server  | libtinfo5:i386
ttt-server  | netcat-openbsd
ttt-server  | python3
ttt-server  | grep: /etc/apt/sources.list: No such file or directory
ttt-server  | tar
ttt-server  | tmux
ttt-server  | unzip
ttt-server  | util-linux
ttt-server  | uuid-runtime
ttt-server  | wget
ttt-server  | xz-utils
ttt-server  | Information! Required dependencies already installed.
ttt-server  | fetching GitHub install_steamcmd.sh...OK
ttt-server  |
ttt-server  | Installing SteamCMD
ttt-server  | =================================
ttt-server  | fetching GitHub check_steamcmd.sh...OK
ttt-server  | fetching GitHub core_steamcmd.sh...OK
######################################################################## 100.0%
ttt-server  | OK
ttt-server  | extracting steamcmd_linux.tar.gz...OK
ttt-server  | fetching GitHub install_server_files.sh...OK
ttt-server  |
ttt-server  | Installing Garry's Mod Server
ttt-server  | =================================
ttt-server  | fetching GitHub update_steamcmd.sh...OK
ttt-server  | /home/steam/lgsm/modules/check_system_requirements.sh: line 66: [: 0.5: integer expression expected
[ START ] Installing gmodserver: SteamCMD
ttt-server  | Complete! Installing gmodserver: SteamCMD
[ ERROR ] Installing gmodserver: No appmanifest_4020.acf found
[ INFO ] Installing gmodserver: Forcing update to correct issue
[ START ] Installing gmodserver: SteamCMD
ttt-server  | Complete! Installing gmodserver: SteamCMD
[ FAIL ] Installing gmodserver: Still no appmanifest_4020.acf found
ttt-server  | fetching GitHub core_exit.sh...OK
ttt-server  | [entrypoint.sh]update / installation done!
ttt-server  | [prepareServer.sh]check configurations
ttt-server  | [initConfig.sh]Request for replacing hostname to "My Server", source is found 1 times
ttt-server  | [initConfig.sh]Request for replacing sv_password to "server-password", source is found 1 times
ttt-server  | [initConfig.sh]Request for replacing sv_voiceenable to "1", source is found 1 times
ttt-server  | [prepareServer.sh]force workshop download
ttt-server  | [forceWorkshopDownload.sh]processing workshop collection 2176094350
ttt-server  | [prepareServer.sh]install & mount gamefiles
ttt-server  | [installAndMountAddons.sh]installing & mounting css
ttt-server exited with code 1
  1. Don't worry, Open Source works like this; sometimes someone has time, sometimes not. Thanks for your response!
  2. The error from lsgm shouldn't be an issue, this is the line 66: if (($(echo "${physmemtotalgb} < ${ramrequirementgb}" | bc -l))); then, so we can ignore it in the log
  3. Maybe even if the emulation is activated via platform: linux/amd64 steam checks the platform so that it still identifies the arm architecture?