OpenTTD in CLion devcontainer

From Pengwings
Revision as of 14:04, 15 February 2026 by Theleruby (talk | contribs) (Created page with "Clone game mkdir -p /home/ruby/dev/OpenTTD cd /home/ruby/dev/OpenTTD hg clone <nowiki>git+ssh://git@github.com:Theleruby/OpenTTD.git</nowiki> Create .devcontainer directory mkdir .devcontainer Edit Dockerfile vim .devcontainer/Dockerfile FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update # requirements for openttd RUN apt-get install -y --no-install-recommends build-essential gcc pkg-config cmake liballegro4-dev libcurl4-openssl-dev libfl...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Clone game

mkdir -p /home/ruby/dev/OpenTTD
cd /home/ruby/dev/OpenTTD
hg clone git+ssh://git@github.com:Theleruby/OpenTTD.git

Create .devcontainer directory

mkdir .devcontainer

Edit Dockerfile

vim .devcontainer/Dockerfile
FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update
# requirements for openttd
RUN apt-get install -y --no-install-recommends build-essential gcc pkg-config cmake liballegro4-dev libcurl4-openssl-dev libfluidsynth-dev libfontconfig-dev libharfbuzz-dev libicu-dev liblzma-dev liblzo2-dev libogg-dev libopus-dev libopusfile-dev libpng-dev zlib1g-dev
# requirements for devcontainer
RUN apt-get install -y --no-install-recommends mercurial ca-certificates pipewire-alsa pipewire
# prep container
RUN mkdir -p /run/user/1000
RUN chown ubuntu:ubuntu /run/user/1000
USER ubuntu
ENTRYPOINT ["/bin/bash"]

Edit devcontainer.json

vim .devcontainer/devcontainer.json
{
    "name": "OpenTTD",
    "dockerFile": "Dockerfile",
    "containerUser": "ubuntu",
    "runArgs": [
        "--device=/dev/snd",
        "--gpus",
        "all"
    ],
    "containerEnv": {
        "DISPLAY": "unix:0",
        "XDG_RUNTIME_DIR": "/run/user/1000"
    },
    "mounts": [
        "source=/opt/soundfonts/gm.sf2,target=/opt/soundfonts/gm.sf2,type=bind,consistency=cached",
        "source=/home/ruby/dev/OpenTTD/data,target=/.jbdevcontainer/data/openttd,type=bind,consistency=cached",
        "source=/home/ruby/dev/OpenTTD/config,target=/.jbdevcontainer/config/openttd,type=bind,consistency=cached",
        "source=/tmp/.X11-unix,target=/tmp/.X11-unix,type=bind,consistency=cached",
        "source=/run/user/1000/pipewire-0,target=/run/user/1000/pipewire-0,type=bind,consistency=cached"
    ],
}