Процесс сборки Docker полностью неинтерактивен, и если вы ищете какой-либо ввод, вам нужно передать build-args и ссылаться на эти build-args в вашей последующей команде RUN.
Но, как уже упоминалось в комментарии, вам нужно запустить их как CMD
, так как это застрянет в процессе сборки.
Вот Dockerfile с например, точка входа, которая может вам помочь,
# start steamcmd to force it to update itself
RUN ./steamcmd/steamcmd.sh +quit
# start the server main script
ENTRYPOINT ["bash", "/home/steam/server_scripts/server.sh"]
Вы можете изменить ее на
/home/steam/steamcmd/steamcmd.sh \
+login anonymous \
+exit
, а один из приведенных выше примеров - cs_go.sh
, который вам нужно переименовать вserver.sh
is
#!/bin/bash
# update server's data
/home/steam/steamcmd/steamcmd.sh \
+login anonymous \
+force_install_dir /home/steam/server_data \
+app_update 740 \
+exit
# start the server
/home/steam/server_data/srcds_run \
-game csgo -console -usercon \
-secure -autoupdate -tickrate 64 +hostport 27015 \
+game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 \
-port 27015 -console -secure -nohltv +sv_pure 0 +ip 0.0.0.0
exit 0
обновлено:
Автоматизация SteamCMD
Существует два способа автоматизации SteamCMD. (Замените steamcmd на ./steamcmd.sh
в Linux / OS X.)
Командная строка
Примечание: При использовании опции -beta вв командной строке он должен быть заключен в кавычки особым образом, например, +app_update
"бета-версия 90-бета".
Примечание: Если это не работает, попробуйте поставить его как "+app_update 90 -beta beta"
вместо.
Добавьте команды к командной строке с префиксом плюс символов, например:
steamcmd +login anonymous +force_install_dir ../csgo_ds +app_update 740 +quit
Автоматизация SteamCMD