Coder Social home page Coder Social logo

cm2walki / steamcmd Goto Github PK

View Code? Open in Web Editor NEW
214.0 10.0 68.0 90 KB

Dockerfile for automated build of a SteamCMD installation: https://hub.docker.com/r/cm2network/steamcmd/

Home Page: https://CM2.Network

License: MIT License

Dockerfile 83.87% Shell 16.13%
steamcmd game-servers steam-client dockerfile

steamcmd's Introduction

Docker Build Status Docker Stars Docker Pulls Discord

Supported tags and respective Dockerfile links

What is SteamCMD?

The Steam Console Client or SteamCMD is a command-line version of the Steam client. Its primary use is to install and update various dedicated servers available on Steam using a command-line interface. It works with games that use the SteamPipe content system. All games have been migrated from the deprecated HLDSUpdateTool to SteamCMD. This image can be used as a base image for Steam-based dedicated servers (Source: developer.valvesoftware.com).

How to use this image

Whilst it's recommended to use this image as a base image of other game servers, you can also run it in an interactive shell using the following command:

$ docker run -it --name=steamcmd cm2network/steamcmd bash
$ ./steamcmd.sh +force_install_dir /home/steam/squad-dedicated +login anonymous +app_update 403240 +quit

This can prove useful if you are just looking to test a certain game server installation.

Running with named volumes:

$ docker volume create steamcmd_login_volume # Optional: Location of login session
$ docker volume create steamcmd_volume # Optional: Location of SteamCMD installation

$ docker run -it \
    -v "steamcmd_login_volume:/home/steam/Steam" \
    -v "steamcmd_volume:/home/steam/steamcmd" \
    cm2network/steamcmd bash

This setup is necessary if you have to download a non-anonymous appID or upload a steampipe build. For an example check out: https://hub.docker.com/r/cm2network/steampipe/

Configuration

This image includes the nano text editor for convenience.

The steamcmd.sh can be found in the following directory: /home/steam/steamcmd

Examples

Images utilizing this base image:

Image Pulls Build Status
cm2network/cs2 Docker Pulls Docker Build Status
cm2network/tf2 Docker Pulls Docker Build Status
cm2network/squad Docker Pulls Docker Build Status
cm2network/mordhau Docker Pulls Docker Build Status
cm2network/holdfastnaw Docker Pulls Docker Build Status
cm2network/valheim Docker Pulls Docker Build Status
cm2network/steampipe Docker Pulls Docker Build Status
cm2network/csgo Docker Pulls Repository Archived

Image Variants

The steamcmd images come in two flavors, each designed for a specific use case.

steamcmd:latest

This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used as the base to build other images off of. This image's default user is steam, any command executed in a higher layer Dockerfile will therefor be executed as that user.

steamcmd:root

This is a specialized image. This image's default user is root. If you need to install additional packages for you game server and do not want to create excess layers, then this is the right choice.

Note: Running the steamcmd.sh as root will fail because the owner is the user steam, either swap the active user using su steam or use chown to change the ownership of the directory.

Contributors

Contributors Display

steamcmd's People

Contributors

cm2walki avatar laurentlardenois avatar winneec avatar xxcallemanxx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

steamcmd's Issues

dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory

Problem:

When running the Docker container for cm2network/steamcmd:latest, I'm encountering an issue related to a missing shared object file steamservice.so.

Steps to Reproduce:

  1. Pulled the cm2network/steamcmd:latest image: docker pull cm2network/steamcmd:latest
  2. Ran the container with entrypoint as /bin/sh: docker run --entrypoint /bin/sh -it cm2network/steamcmd:latest
  3. Executed steamcmd.

Expected Behavior:

I expect steamcmd to launch successfully without any errors.

Actual Behavior:

Received the following error message:

dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory

Environment:

  • OS: Ubuntu 20
  • Docker version: 24.0.6
  • Image: cm2network/steamcmd:latest

Logs:

root@m23322:~# docker run -it --name=steamcmd cm2network/steamcmd bash
Unable to find image 'cm2network/steamcmd:latest' locally
latest: Pulling from cm2network/steamcmd
7dbc1adf280e: Pull complete
6d8b5674a23a: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:5393e26248e593a7ab2fdd67f4a9ae7dc6ada421a7c38fa9cdb3afc72cf8d8a8
Status: Downloaded newer image for cm2network/steamcmd:latest
steam@09436ea6520b:~/steamcmd$ steamcmd
bash: steamcmd: command not found
steam@09436ea6520b:~/steamcmd$ ll
bash: ll: command not found
steam@09436ea6520b:~/steamcmd$ ls
linux32  linux64  package  public  siteserverui  steam.sh  steamcmd.sh
steam@09436ea6520b:~/steamcmd$ ./steamcmd.sh
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
Logging directory: '/home/steam/Steam/logs'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1696019544
-- type 'quit' to exit --
Loading Steam API...dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
OK

Steam>

Additional Context:

/root/Steam/logs/stderr.txt is empty

Orphan Image

I might be doing it wrong, but when I do a docker pull command, it seems to download correctly, but shows up as an orphan image.

I'm not super sophisticated with my unraid yet, so it could be something I'm doing wrong. Any chance of some help?

No sentry file generated anymore

Hi there,

first of all, thanks a lot for this image!

We are using it a CI pipeline that hasn't been running for a while. We just recently wanted to run a new build but found that our deployment to Steam stopped working due to expired credentials. But when I tried to regenerate credentials to provide to the CI server, there was no sentry file to be found anymore. I looked into all the respective directories within the container, but no luck.

Did something change over the past year or so that we missed? Did the mechanism change?

I am aware that this is likely not an issue with this image but with the way we're using it. I am just seeking advice :)

Image steamcmd:root doesn't work

I have tried the following command with the default image on GKE and it works :
app_update 1026340 validate
but it doesn't work with the root version and returns the following error :
Steam>login anonymous

Connecting anonymously to Steam Public...Logged in OK
Waiting for user info...OK

Steam>app_update 1026340 validate
applicationmanager.cpp (3881) : Assertion Failed: CApplicationManager::GetMountVolume: invalid index
ERROR! Failed to install app '1026340' (Disk write failure)

Can't start server with an entrypoint.sh

Hey,

I'm currently trying to create a GMod image based on this one. But if i try to start my Server through an entrypoint.sh it fails like this:

gmod-server    | Auto detecting CPU
gmod-server    | Using default binary: ./srcds_linux
gmod-server    | Server will auto-restart if there is a crash.
gmod-server    | Setting breakpad minidump AppID = 4000
gmod-server    | [S_API] SteamAPI_Init(): Loaded 'steamclient.so' OK.
gmod-server    | CAppInfoCacheReadFromDiskThread took 1 milliseconds to initialize
gmod-server    | CApplicationManagerPopulateThread took 1 milliseconds to initialize (will have waited on CAppInfoCacheReadFromDiskThread)
gmod-server    | [S_API FAIL] Tried to access Steam interface SteamUser020 before SteamAPI_Init succeeded.

But the scripts works perfectly fine after I exec into the container and run it.

Maybe you also had the problem and know how to fix it.

Here is the link to the issue in my repo if you need more info.
lennard0711/docker-gmod#1

how to run

steam@bdab84a666cf:/steamcmd$ ls
linux32 linux64 package public siteserverui steamcmd.sh
steam@bdab84a666cf:
/steamcmd$ ./steamcmd.sh
WARNING: setlocale('en_US.UTF-8') failed, using locale: 'C'. International characters may not work.
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
[ 0%] Checking for available updates...
[----] Verifying installation...
[ 0%] Downloading update...
[ 0%] Checking for available updates...
[----] Download complete.
[----] Extracting package...
[----] Extracting package...
***** OUT OF MEMORY! attempted allocation size: 147962298 ****
/data/src/tier0/memstd.cpp (2448) : Fatal Assertion Failed: OUT OF MEMORY
/data/src/tier0/memstd.cpp (2448) : Fatal assert failed: /data/src/tier0/memstd.cpp, line 2448. Application exiting.

_ExitOnFatalAssert
steam@bdab84a666cf:~/steamcmd$

Curious error 0x202 of SteamCMD v1658944597

This issue doesn't necessarily have anything to do with this repository. I have also tried posting about this on Steam forums. Posting here just in case this is a more active SteamCMD forum.

The issue: Curious SteamCMD error 0x202

I tried installing Rust dedicated server from within a container made from cm2network/steamcmd:root on two Linux machines. On one of the machines the installation completes successfully but on the other one it fails with error status 0x202. Filesystems, user permissions and issued commands should be identical due to containerization, and both machines have plenty of disk space. What could be causing this discrepancy?

SteamCMD and Docker versions:

Steam Console Client (c) Valve Corporation - version 1658944597
Docker version 20.10.17, build 100c70180f

can't run steamcmd.sh with 32-bit dependency error

I'm trying to run an image that uses this image as its base, and I'm hitting issues. After messing about with things a bit, I've run docker run -it cm2network/steamcmd:root bash to check if the issue happens on this base image too, and I'm hitting the same issue.

Here's what I'm running, and the output of it. Bizarrely, I don't have this issue on another PC. I'm starting to wonder if it's an SELinux issue or something.

alex@atlas:~/docker/valheim> docker run -it cm2network/steamcmd:root bash
root@9f9c6c185766:/home/steam/steamcmd# su - steam
$ cd steamcmd
$ ls -l
total 8
drwxr-xr-x. 1 steam steam  234 Sep 30 03:41 linux32
drwxr-xr-x. 1 steam steam   28 Sep 30 03:41 linux64
drwxr-xr-x. 1 steam steam  686 Sep 30 03:41 package
drwxr-xr-x. 1 steam steam 1690 Sep 30 03:41 public
drwxr-xr-x. 1 steam steam   14 Sep 30 03:41 siteserverui
lrwxrwxrwx. 1 steam steam   32 Mar  4  2021 steam.sh -> /home/steam/steamcmd/steamcmd.sh
-rwxr-xr-x. 1 steam steam 1173 Nov 22  2020 steamcmd.sh
$ ./steamcmd.sh
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Downloading update (147 of 54,020 KB)...
[  0%] Downloading update (1,992 of 54,020 KB)...
[  3%] Downloading update (3,863 of 54,020 KB)...
[  7%] Downloading update (5,732 of 54,020 KB)...
[ 10%] Downloading update (7,603 of 54,020 KB)...
[ 14%] Downloading update (9,784 of 54,020 KB)...
[ 18%] Downloading update (11,652 of 54,020 KB)...
[ 21%] Downloading update (13,509 of 54,020 KB)...
[ 25%] Downloading update (15,371 of 54,020 KB)...
[ 28%] Downloading update (17,418 of 54,020 KB)...
[ 32%] Downloading update (19,261 of 54,020 KB)...
[ 35%] Downloading update (21,130 of 54,020 KB)...
[ 39%] Downloading update (22,941 of 54,020 KB)...
[ 42%] Downloading update (25,002 of 54,020 KB)...
[ 46%] Downloading update (26,851 of 54,020 KB)...
[ 49%] Downloading update (28,699 of 54,020 KB)...
[ 53%] Downloading update (30,537 of 54,020 KB)...
[ 56%] Downloading update (32,595 of 54,020 KB)...
[ 60%] Downloading update (34,450 of 54,020 KB)...
[ 63%] Downloading update (36,257 of 54,020 KB)...
[ 67%] Downloading update (37,297 of 54,020 KB)...
[ 69%] Downloading update (38,456 of 54,020 KB)...
[ 71%] Downloading update (39,523 of 54,020 KB)...
[ 73%] Downloading update (40,585 of 54,020 KB)...
[ 75%] Downloading update (41,650 of 54,020 KB)...
[ 77%] Downloading update (42,930 of 54,020 KB)...
[ 79%] Downloading update (44,163 of 54,020 KB)...
[ 81%] Downloading update (45,369 of 54,020 KB)...
[ 83%] Downloading update (46,549 of 54,020 KB)...
[ 86%] Downloading update (47,886 of 54,020 KB)...
[ 88%] Downloading update (49,103 of 54,020 KB)...
[ 90%] Downloading update (50,289 of 54,020 KB)...
[ 93%] Downloading update (51,582 of 54,020 KB)...
[ 95%] Downloading update (52,791 of 54,020 KB)...
[ 97%] Downloading update (54,014 of 54,020 KB)...
[ 99%] Downloading update (54,020 of 54,020 KB)...
[100%] Download complete.
[----] Installing update...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Cleaning up...
[----] Update complete, launching Steamcmd...
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation
-- type 'quit' to exit --
Loading Steam API...src/common/steam/client_api.cpp (579) : Assertion Failed: ClientAPI_InitGlobalInstance: InternalAPI_Init_Internal failed, most likely because you are missing a 32-bit dependency of steamclient.so (the Steam client is a 32-bit app).

FAILED (1)
$ 

If you have any thoughts, I'd appreciate the assistance. I'm debugging at the moment by running ldd on all the binaries in the steam install to see if that helps, and I'm going to try building from scratch instead of using the image, too.

Question/help with commands

just had a question on what the expected output would look like after running these two commands?

$ docker run -it --name=steamcmd cm2network/steamcmd bash
$ ./steamcmd.sh +force_install_dir /home/steam/squad-dedicated +login anonymous +app_update 403240 +quit

because the results i have been getting is this:

[  0%] Checking for available updates...
[----] Verifying installation...
[  0%] Downloading update...
[  0%] Checking for available updates...
[----] !!! Fatal Error: Steamcmd needs to be online to update. Please confirm your network connection and try again.
src/tier0/threadtools.cpp (3645) : Assertion Failed: Illegal termination of worker thread 'Thread(0x0x581096a0/0x0xf76b3b' 

which hasn't given me very good results on looking into why steamcmd is offline.

i am running as the steam user, dns is set to 8.8.8.8.

i'm unable to ping 'client-download.steampowered.com' but can ping 'media.steampowered.com'

here's bootstrap_log.txt:

[2023-04-11 17:30:37] Startup - Steam Client launched with: '/home/steam/steamcmd/linux32/steamcmd' '+force_install_dir' '/home/steam/squad-dedicated' '+login' 'anonymous' '+app_update' '403240' '+quit'
[2023-04-11 17:30:37] Loading cached metrics from disk (/home/steam/steamcmd/package/steam_cmd_metrics.bin)
[2023-04-11 17:30:37] Failed to load cached hosts file (File 'update_hosts_cached.vdf' not found), using defaults
[2023-04-11 17:30:37] Using the following download hosts for Public, Realm steamglobal
[2023-04-11 17:30:37] 1. http://media.steampowered.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2023-04-11 17:30:37] Checking for update on startup
[2023-04-11 17:30:37] Checking for available updates...
[2023-04-11 17:30:37] Downloading manifest: http://media.steampowered.com/client/steam_cmd_linux
[2023-04-11 17:30:37] Manifest download: send request
[2023-04-11 17:30:38] Manifest download: waiting for download to finish
[2023-04-11 17:30:38] Manifest download: finished
[2023-04-11 17:30:38] Download failed: http error 0 (media.steampowered.com/client/steam_cmd_linux)
[2023-04-11 17:30:38] DownloadManifest - exhausted list of download hosts
[2023-04-11 17:30:38] failed to load manifest from buffer.
[2023-04-11 17:30:38] Failed to load manifest
[2023-04-11 17:30:38] Error: Download failed: http error 0
[2023-04-11 17:30:38] Saving metrics to disk (/home/steam/steamcmd/package/steam_cmd_metrics.bin)
[2023-04-11 17:30:38] Error: Failed to determine download location for universe 1
[2023-04-11 17:30:38] Verifying installation...
[2023-04-11 17:30:38] Performing checksum verification of executable files
[2023-04-11 17:30:38] Unable to read and verify install manifest /home/steam/steamcmd/package/steam_cmd_linux.installed
[2023-04-11 17:30:38] Verification complete
[2023-04-11 17:30:38] Downloading update...
[2023-04-11 17:30:38] Checking for available updates...
[2023-04-11 17:30:38] Downloading manifest: http://media.steampowered.com/client/steam_cmd_linux
[2023-04-11 17:30:38] Manifest download: send request
[2023-04-11 17:30:38] Manifest download: waiting for download to finish
[2023-04-11 17:30:38] Manifest download: finished
[2023-04-11 17:30:38] Download failed: http error 0 (media.steampowered.com/client/steam_cmd_linux)
[2023-04-11 17:30:38] DownloadManifest - exhausted list of download hosts
[2023-04-11 17:30:38] failed to load manifest from buffer.
[2023-04-11 17:30:38] Failed to load manifest
[2023-04-11 17:30:38] Error: Download failed: http error 0
[2023-04-11 17:30:38] Saving metrics to disk (/home/steam/steamcmd/package/steam_cmd_metrics.bin)
[2023-04-11 17:30:38] Error: Steamcmd needs to be online to update. Please confirm your network connection and try again.
[2023-04-11 17:30:38] Shutdown

and here's stderr.txt:

Installing breakpad exception handler for appid(steamcmd)/version(1679680174)/tid(368)
Installing breakpad exception handler for appid(steamcmd)/version(1679680174)/tid(369)
src/tier0/threadtools.cpp (3645) : Assertion Failed: Illegal termination of worker thread 'Thread(0x0x577146a0/0x0xf7712b'
assert_20230411173039_6.dmp[372]: Uploading dump (out-of-process)
/tmp/dumps/assert_20230411173039_6.dmp
assert_20230411173039_6.dmp[372]: Finished uploading minidump (out-of-process): success = no
assert_20230411173039_6.dmp[372]: error: libcurl.so: cannot open shared object file: No such file or directory
assert_20230411173039_6.dmp[372]: file ''/tmp/dumps/assert_20230411173039_6.dmp'', upload no: ''libcurl.so: cannot open shared object file: No such file or directory''
Installing breakpad exception handler for appid(steamcmd)/version(1679680174)/tid(367)

if possible could someone run this image and then run that command inside the container and show me the results?
Thanks!

[Feature Request] Please add Debian 12 image/support

Hello @CM2Walki

Im using your Docker-base-image to make https://github.com/jammsen/docker-palworld-dedicated-server an reality and i really like it.

While going through some issues this comment did arise, in which Mac users that using this base image getting problems with the old version of SED 4.7.1 because its Debian 11 and oldstable. This could be solved in providing a Debian 12 version of this image, which has already SED 4.9.1 included (including the Bug-Fix).

Would it be possible to publish the new Debian 12 version also, aside from the Debian 11 version?

Version '20190110' for 'ca-certificates' was not found

I am using WSL2 for Docker. I get the following:
docker build /buster

Reading package lists...
Building dependency tree...
Reading state information...
E: Version '20190110' for 'ca-certificates' was not found
The command '/bin/sh -c set -x  && dpkg --add-architecture i386         && apt-get update                                                                                                                          && apt-get install -y --no-install-recommends --no-install-suggests             lib32stdc++6=8.3.0-6
lib32gcc1=1:8.3.0-6             wget=1.20.1-1.1                 ca-certificates=20190110
nano=3.2-3              libsdl2-2.0-0:i386=2.0.9+dfsg1-1                curl=7.64.0-4+deb10u1                                                                                                                      && useradd -u "${PUID}" -m "${USER}"         && su "${USER}" -c                 "mkdir -p \"${STEAMCMDDIR}\"                 && wget -qO- 'https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz' | 
tar xvzf - -C \"${STEAMCMDDIR}\"                 && \"./${STEAMCMDDIR}/steamcmd.sh\" +quit                 && mkdir -p \"${HOMEDIR}/.steam/sdk32\"                 && ln -s \"${STEAMCMDDIR}/linux32/steamclient.so\" \"${HOMEDIR}/.steam/sdk32/steamclient.so\"            && ln -s \"${STEAMCMDDIR}/linux32/steamcmd\" \"${STEAMCMDDIR}/linux32/steam\"
&& ln -s \"${STEAMCMDDIR}/steamcmd.sh\" \"${STEAMCMDDIR}/steam.sh\""    && ln -s "${STEAMCMDDIR}/linux32/steamclient.so" "/usr/lib/i386-linux-gnu/steamclient.so"                                                  && ln -s "${STEAMCMDDIR}/linux64/steamclient.so" "/usr/lib/x86_64-linux-gnu/steamclient.so"                                                                                                                         && apt-get remove --purge -y             wget    && apt-get clean autoclean     && apt-get autoremove -y                                                                                                            && rm -rf /var/lib/apt/lists/*' returned a non-zero code: 100

Is there a reason why this specific older version of ca-certificates is being used?

Any help is appreciated, thanks!

[Enhancement] Introduce the ability to pin to a Debian version

Hi!

I've build an image depending on your awesome image, however the lacking ability to pin to a specific version introduced some issues when you updated from Debian bullseye to Debian bookworm.
If possible I would like to have an option to pin to a specific version like: cm2network/steamcmd:deb11-root

`error: libcurl.so: cannot open shared object file: No such file or directory`

Running

docker compose run --rm login

against the Compose manifest

services:
  login:
    image: cm2network/steamcmd
    restart: never
    command: bash /home/steam/steamcmd/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASSWORD} +quit
    volumes:
      - .state/Steam:/home/steam/Steam

  cs2:
    image: cm2network/cs2
    restart: unless-stopped
    volumes:
      - .state/Steam:/home/steam/Steam
      - .state/cs2:/home/steam/cs2-dedicated
    env_file:
      - cs2.env
    ports:
      - "27015:27015/tcp"
      - "27015:27015/udp"
      - "27020:27020/udp"

with the .env file

STEAM_USER=example
STEAM_PASSWORD=example

and cs2.env with

STEAMUSER=example
CS2_HOSTNAME=Example
CS2_PORT=27015
CS2_TV_PORT=27020
CS2_LAN=0
CS2_RCONPW=987654321
CS2_PW=4321
CS2_MAXPLAYERS=14
CS2_GAMETYPE=0
CS2_GAMEMODE=0
CS2_MAPGROUP=mg_active
CS2_STARTMAP=de_dust2
CS2_ADDITIONAL_ARGS=
CS2_BOT_DIFFICULTY=3
CS2_BOT_QUOTA=6
CS2_BOT_QUOTA_MODE=fill

yields an error message, but finishes with OK:

Creating cs2chnio_login_run ... done
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
Logging directory: '/home/steam/Steam/logs'
[  0%] Checking for available updates...
[----] Verifying installation...
[  0%] Downloading update...
[  0%] Checking for available updates...
[----] Download complete.
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Cleaning up...
[----] Update complete, launching Steamcmd...
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
Logging directory: '/home/steam/Steam/logs'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1696019544
-- type 'quit' to exit --
Loading Steam API...OK
Logging in user 'example' to Steam Public...
This computer has not been authenticated for your account using Steam Guard.
Please check your email for the message from Steam, and enter the Steam Guard
 code from that message.
You can also enter this code at any time using 'set_steam_guard_code'
 at the console.
Steam Guard code:ABCDE
OK
Waiting for client config...OK
Waiting for user info...src/clientdll/remotestoragefilesynccontext.cpp (947) : Assertion Failed: Failed to write file after download (2)

assert_20231022234928_67.dmp[88]: Uploading dump (out-of-process)
/tmp/dumps/assert_20231022234928_67.dmp

assert_20231022234928_67.dmp[88]: Finished uploading minidump (out-of-process): success = no

assert_20231022234928_67.dmp[88]: error: libcurl.so: cannot open shared object file: No such file or directory

assert_20231022234928_67.dmp[88]: file ''/tmp/dumps/assert_20231022234928_67.dmp'', upload no: ''libcurl.so: cannot open shared object file: No such file or directory''

src/clientdll/remotestoragefilesynccontext.cpp (947) : Assertion Failed: Failed to write file after download (2)

src/clientdll/userremotestorage.cpp (4484) : bRet

but nothing is saved to the Steam directory:

$ ls -lan .state/*    
.state/cs2:
total 18
drwxrwxrwx 2 0 0 2 Okt 23 00:17 .
drwxr-xr-x 4 0 0 4 Okt 23 00:23 ..

.state/Steam:
total 18
drwxr-xr-x 2 0 0 2 Okt 23 00:23 .
drwxr-xr-x 4 0 0 4 Okt 23 00:23 ..

ARM64 support

It would be nice that you guys release the binaries for ARM64 so it is easier to host servers on those types of architectures (like oracle's or raspberry pi 4)

Cannot run steamcmd (Steamcmd needs to be online to update)

Another container I am using which depends on this as a base is trying to update the game, but always only errors out that it has no internet connection.
Then I tried running the steamcmd container directly to test it a bit more and I am now getting the same error:

Steps:

  • docker run -it cm2network/steamcmd bash
  • ./steamcmd.sh

Then I get the following output:

steam@8da9d24daa87:~/steamcmd$ ./steamcmd.sh
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
src/tier0/threadtools.cpp (4122) : Probably deadlock or failure waiting for thread to initialize.
[  0%] Checking for available updates...
assert_20220616204145_5.dmp[66]: Uploading dump (out-of-process)
/tmp/dumps/assert_20220616204145_5.dmp

Thread failed to initialize
src/tier0/threadtools.cpp (4122) : Probably deadlock or failure waiting for thread to initialize.
Thread failed to initialize
CWorkThreadPool::StartWorkThread: Thread creation failed.
assert_20220616204145_5.dmp[66]: Finished uploading minidump (out-of-process): success = no

assert_20220616204145_5.dmp[66]: error: libcurl.so: cannot open shared object file: No such file or directory

assert_20220616204145_5.dmp[66]: file ''/tmp/dumps/assert_20220616204145_5.dmp'', upload no: ''libcurl.so: cannot open shared object file: No such file or directory''

src/tier0/threadtools.cpp (4122) : Probably deadlock or failure waiting for thread to initialize.
Thread failed to initialize
CWorkThreadPool::StartWorkThread: Thread creation failed.
src/tier0/threadtools.cpp (4122) : Probably deadlock or failure waiting for thread to initialize.
Thread failed to initialize
[----] Verifying installation...
[  0%] Downloading update...
[  0%] Checking for available updates...
[----] !!! Fatal Error: Steamcmd needs to be online to update. Please confirm your network connection and try again.
src/common/workthreadpool.cpp (612) : pWorkThread->m_bFinished is false but thread is not running
src/common/workthreadpool.cpp (612) : pWorkThread->m_bFinished is false but thread is not running
CWorkThreadPool::~CWorkThreadPool: work complete queue not empty, 1 items discarded.

I don't know what might be causing this at all right now and didn't find any solution yet.

SteamCMD not found

Running this command:

RUN set -x \
  && "${STEAMCMDDIR}/steamcmd.sh" \
  +login anonymous \
  +force_install_dir ${STEAMAPPDIR} \
  +app_update ${STEAMAPPID} validate \
  +quit

Return this:

/bin/sh: 1: /home/steam/steamcmd/steamcmd.sh: not found

Password for root user?

Hi, i must install a extra app. so i try command "su root apt-get update" but without root passwort, i cant do it ^^

I uses Steam Docker release

No sentry file when using root variant

Hello, i am using steamcmd inside a CI Pipeline and i use the root variant.
I needed to install gettext-base in order to use envsubst.
Now that the weird things, i can login but it doesn't create sffn* file that i want, in order to cache it, and to don't put anymore the Steam Guard code.
I don't find it either with find command, and in the steam user variant it create the file in /home/steam/Steam

Volume should be created by user instead of dockerfile

Making the volume to persist the data should be up to the user, I am currently using this image to make an Arma 3 server in my k8s cluster and the automatically created volume just makes me use more disk space and it cannot be changed/unmade. It should be up to the user to create the volume if they want to (it's also easy so it's not like you're adding more complexity if you do), and this would make the docker image more versatile and better to work with, and inherit from.

steamclient.so: cannot open shared object file: No such file or directory

I tried to start the cs1.6 service, but I got this error. This error is described in the official document, but I followed the document, but I still have the same problem.Please advise.

steam@08d60943b3c9:~/steamcmd/cs16_ds$ ./hlds_run -console -game cstrike +port 27015 +maxplayers 16 +map de_nuke
Auto-restarting the server on crash

Console initialized.
Using breakpad crash handler
Setting breakpad minidump AppID = 10
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
Exe build: 19:52:19 Aug 3 2020 (8684)
STEAM Auth Server
Server IP address 172.17.0.2:27015
[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
dlopen failed trying to load:
steamclient.so
with error:
steamclient.so: cannot open shared object file: No such file or directory
[S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.dll.
FATAL ERROR (shutting down): Unable to initialize Steam.

.

login fails after MFA: Failed to write file after download (2)

Hello,

I was trying to generate Sentry files, but after inputting the MFA code, I got the error Failed to write file after download (2):

docker run -it --name=steamcmd cm2network/steamcmd:root bash
root@c18211f635d1:/home/steam/steamcmd# ./steamcmd.sh +login username password +quit
...Downloading update...
Loading Steam API...OK
Logging in user 'username ' to Steam Public...
This computer has not been authenticated for your account using Steam Guard.
Please check your email for the message from Steam, and enter the Steam Guard
 code from that message.
You can also enter this code at any time using 'set_steam_guard_code'
 at the console.
Steam Guard code:4AXYX
OK
Waiting for client config...OK
Waiting for user info...src/clientdll/remotestoragefilesynccontext.cpp (859) : Assertion Failed: Failed to write file after download (2)

src/clientdll/userremotestorage.cpp (3975) : bRet
OK

Not sure how to get past this. Would appreciate any advice!

VOLUME uselessly copies data to host

I'm using your TF2 image relying on this one, but the VOLUME ${STEAMCMDDIR} command causes the image contents to be copied on the host in an anonymous volume with ~300MB, and this is duplicated each time the container is restarded, finally causing a huge and useless disk usage or requires regular cleanup:

root@homesrv:/var/lib/docker/volumes/c0501b78b12a806a75c0c954da4b4cb81ff0e6149bd960a6690f32d201c1a432# du -sh *
316M    _data
root@homesrv:/var/lib/docker/volumes/c0501b78b12a806a75c0c954da4b4cb81ff0e6149bd960a6690f32d201c1a432# ll _data
total 32
drwxr-xr-x 7 homesrv homesrv 4096 nov.  20 22:19 ./
drwxr-xr-x 3 root     root     4096 nov.  20 22:18 ../
drwxr-xr-x 2 homesrv homesrv 4096 nov.  20 22:19 linux32/
drwxr-xr-x 2 homesrv homesrv 4096 nov.  20 22:19 linux64/
drwxr-xr-x 2 homesrv homesrv 4096 nov.  20 22:19 package/
drwxr-xr-x 2 homesrv homesrv 4096 nov.  20 22:19 public/
drwxr-xr-x 3 homesrv homesrv 4096 nov.  20 22:18 siteserverui/
-rwxr-xr-x 1 homesrv homesrv 1166 oct.  10  2016 steamcmd.sh*
lrwxrwxrwx 1 homesrv homesrv   32 août  25 09:15 steam.sh -> /home/steam/steamcmd/steamcmd.sh

Overwriting this volume with a customized host directory doesn't work because in this case, the image contents is not copied, so the directory is empty and the image doesn't start.

Is there any good reason for duplicating the image contents on the host, knowing it doesn't bring persistence between container executions or would it be possible to remove this VOLUME instruction ?

Thanks!

Error initializing native libSDL2-2.0.so.0

Hi,

So I'm trying to get steamcmd running on pi4b to setup a valheim dedicated server.

I'm following this guide: https://singleboardbytes.com/2058/set-up-a-valheim-dedicated-server-on-the-raspberry-pi.htm

Although I've ran into this issue when running steamcmd.

./steamcmd.sh
Box86 with Dynarec v0.2.2 bedacef6 built on May 14 2022 12:53:15
Redirecting stderr to '/home/pi/Steam/logs/stderr.txt'
ILocalize::AddFile() failed to load file "public/steambootstrapper_english.txt".
[  0%] Checking for available update...
[----] Downloading update (0 of 54,937 KB)...
[  0%] Downloading update (1,556 of 54,937 KB)...
[  2%] Downloading update (3,628 of 54,937 KB)...
[  6%] Downloading update (5,639 of 54,937 KB)...
[ 10%] Downloading update (7,535 of 54,937 KB)...
[ 13%] Downloading update (9,605 of 54,937 KB)...
[ 17%] Downloading update (11,553 of 54,937 KB)...
[ 21%] Downloading update (13,423 of 54,937 KB)...
[ 24%] Downloading update (15,336 of 54,937 KB)...
[ 27%] Downloading update (17,365 of 54,937 KB)...
[ 31%] Downloading update (19,266 of 54,937 KB)...
[ 35%] Downloading update (21,110 of 54,937 KB)...
[ 38%] Downloading update (22,989 of 54,937 KB)...
[ 41%] Downloading update (24,894 of 54,937 KB)...
[ 45%] Downloading update (26,805 of 54,937 KB)...
[ 48%] Downloading update (28,635 of 54,937 KB)...
[ 52%] Downloading update (30,476 of 54,937 KB)...
[ 55%] Downloading update (32,432 of 54,937 KB)...
[ 59%] Downloading update (34,307 of 54,937 KB)...
[ 62%] Downloading update (36,791 of 54,937 KB)...
[ 66%] Downloading update (37,912 of 54,937 KB)...
[ 69%] Downloading update (39,203 of 54,937 KB)...
[ 71%] Downloading update (40,413 of 54,937 KB)...
[ 73%] Downloading update (41,658 of 54,937 KB)...
[ 75%] Downloading update (42,860 of 54,937 KB)...
[ 78%] Downloading update (44,240 of 54,937 KB)...
[ 80%] Downloading update (45,479 of 54,937 KB)...
[ 82%] Downloading update (46,715 of 54,937 KB)...
[ 85%] Downloading update (47,936 of 54,937 KB)...
[ 87%] Downloading update (49,176 of 54,937 KB)...
[ 89%] Downloading update (50,544 of 54,937 KB)...
[ 92%] Downloading update (51,775 of 54,937 KB)...
[ 94%] Downloading update (53,028 of 54,937 KB)...
[ 96%] Downloading update (54,260 of 54,937 KB)...
[ 98%] Downloading update (54,937 of 54,937 KB)...
[100%] Download Complete.
[----] Applying update...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Cleaning up...
[----] Update complete, launching...
Box86 with Dynarec v0.2.2 bedacef6 built on May 14 2022 12:53:15
Redirecting stderr to '/home/pi/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
[  0%] Downloading update...
[  0%] Checking for available updates...
[----] Download complete.
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Cleaning up...
[----] Update complete, launching Steamcmd...
Box86 with Dynarec v0.2.2 bedacef6 built on May 14 2022 12:53:15
Redirecting stderr to '/home/pi/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1652487999
-- type 'quit' to exit --
Loading Steam API...OK

Steam>Error initializing native libSDL2-2.0.so.0 (last dlerror is libSDL2-2.0.so.0: cannot open shared object file: No such file or directory)

I've confirmed that libsdl2-2.0 is installed too.

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'libsdl2-2.0-0' for regex 'libsdl2-2.0'
libsdl2-2.0-0 is already the newest version (2.0.14+dfsg2-3).
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.

TLDR:
Steam>Error initializing native libSDL2-2.0.so.0 (last dlerror is libSDL2-2.0.so.0: cannot open shared object file: No such file or directory)
libsdl2-2.0-0 is installed.

Steamcmd Linux version app 258550

Hi there,
( sorry if i'm asking in the wrong place )
after updating app 258550 can't connect to my dedicated server anymore. my client is uptodate through Steam app.
updating with:
steamcmd +force_install_dir /home/steam/rust_server/ +login anonymous +app_update 258550 validate +quit

but when i try to connect the client, i continue to get this error:
Kicking IP:PORT/SteamID/Zeta - their protocol is 2345 not 2347
IP:PORT/SteamID/Zeta kicked: Wrong Connection Protocol: Client update required!

Thanks for your support
Regards

PUID hardcoded?

Hi, I can't seem to get this to use my provided ENV for PUID. It always sets itself to 1000 no matter what environment variable I pass in when creating the container.

Could this be changed so that the env is used, instead of hardcoding it?
Same goes for GUID probably.

Fatal Error: Steamcmd needs to be online to update.

I am attempting to create a dedicated game server based on the cm2network/steamcmd docker container. I have attempted to use both the "latest" and "root" tagged versions. The container images were fetched from dockerhub via docker pull cm2network/steamcmd:latest and docker pull cm2network/steamcmd:root.

Environment
Host OS: Ubuntu 18.04.5 LTS (Bionic Beaver)
docker version
Client:
Version: 19.03.6
API version: 1.40
Go version: go1.12.17
Git commit: 369ce74a3c
Built: Fri Dec 18 12:21:44 2020
OS/Arch: linux/amd64
Experimental: false

Server:
Engine:
Version: 19.03.6
API version: 1.40 (minimum version 1.12)
Go version: go1.12.17
Git commit: 369ce74a3c
Built: Thu Dec 10 13:23:49 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.3.3-0ubuntu1~18.04.4
GitCommit:
runc:
Version: spec: 1.0.1-dev
GitCommit:
docker-init:
Version: 0.18.0
GitCommit:

Problem Description
Then container is started via:
docker run -it --rm --name=steamcmd cm2network/steamcmd:root /bin/bash

Once inside the container I attempt to just run:
./steamcmd.sh

This results in the output:

WARNING: setlocale('en_US.UTF-8') failed, using locale: 'C'. International characters may not work.
Redirecting stderr to '/root/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Downloading update (0 of 16258 KB)...
[  0%] Downloading update (0 of 16258 KB)...
[  0%] Downloading update (0 of 16258 KB)...
[  0%] Downloading update (404 of 16258 KB)...
[  2%] Downloading update (0 of 16258 KB)...
[----] Verifying installation...
[  0%] Downloading update...
[  0%] Checking for available updates...
[----] Downloading update (0 of 16258 KB)...
[  0%] Downloading update (0 of 16258 KB)...
[  0%] Downloading update (0 of 16258 KB)...
[  0%] Downloading update (73 of 16258 KB)...
[  0%] Downloading update (683 of 16258 KB)...
[  4%] Downloading update (0 of 16258 KB)...
[  0%] !!! Fatal Error: Steamcmd needs to be online to update. Please confirm your network connection and try again.
src/tier0/threadtools.cpp (3553) : Assertion Failed: Illegal termination of worker thread 'Thread(0x0x588388f0/0x0xf7c27b'

This is consistent if I use either the 'root' or 'latest' tagged image. Capturing network traffic, it appears that the update attempt
starts but is ultimately reset by the server (see attached pcap file steamcmd.zip).

Expected result
steamcmd update completes successfully.

As best I can tell, the container is online (the download does start); but, it is stopped before it completes. Because the update fails, I am unable to download any sort of application to begin the process of standing up a server.

32 bit error running Dota?

i cant start dota (package 570) from steamcmd in linux docker.
(/home/steam/Steam/steamapps/common/dota\ 2\ beta/game/dota.sh)
first error that i could fix myself: putting steamclient.so into /home/steam/.steam/sdk64/.
Then it shows an error:

[S_API FAIL] SteamAPI_Init() failed; create pipe failed. failed to dlopen "/home/steam/Steam/steamapps/common/dota 2 beta/game/bin/linuxsteamrt64/librendersystemgl.so" error=libudev.so.0: cannot open shared object file: No such file or directory
 failed to dlopen "librendersystemgl.so" error=libudev.so.0: cannot open shared object file: No such file or directory
/home/steam/Steam/steamapps/common/dota 2 beta/game/dota.sh: line 104:    56 Segmentation fault      (core dumped) ${STEAM_RUNTIME_PREFIX} ${GAME_DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"

i guess using the package libudev0:i386 is missing. (running 32bit executable on 64 bit).
since apk is not part of the docker image, no idea...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.