New slim Docker images

Castle Game Engine and Docker

We feature a set of Docker images that contain a ready Linux machine with Castle Game Engine and all our important dependencies: FPC (cross-compilers for most important platforms β€” Linux/x86_64, Windows/x86_64, Windows/i386, Android/Arm, Android/Aarch64), Lazarus, Android SDK, various texture tools. They are useful to build applications using CGE, both interactively and from various continuous integration/delivery software, like GitHub Actions, GitLab CI, Jenkins.

Their main documentation is our Docker usage documentation and our Docker image at Docker hub.

We have reorganized our Docker images recently. We no longer serve big Docker images with all supported FPC versions. Instead, the Docker images now provide a single FPC version (like latest stable β€” 3.2.2 now) and alternative Docker images provide alternative FPC versions.

The main practical reason behind this was that GitHub tightens their requirements for the disk space allowed for (free) GitHub Actions jobs. We have been β€œon the edge” with regards to their allowed disk usage, because our previous Docker images have been quite large, which was mainly caused by multiple FPC/Lazarus installations inside (each one with units for multiple platforms). And most people do not need these alternative FPC versions, we just recommend to use latest FPC stable. So it seems simpler to split the Docker images into more, smaller ones.

New Docker image names:

  • cge-none : our tools, including latest stable FPC (3.2.2 now), without CGE.
  • cge-stable : like cge-none, with added latest CGE stable, 7.0-alpha.2 now.

  • cge-unstable : like cge-none, with added latest CGE unstable, latest CGE GitHub commit that passed automated checks.

  • cge-none-fpc300 : like cge-none, but FPC 3.0.0.

  • cge-none-fpc331 : like cge-none, but FPC 3.3.1, recent FPC version from FPC GitLab β€œmain” branch.

This article describing BuildKit features to have multiple variants in a single Dockerfile was immensely useful to make this work.

As always, you can take a look at our Docker setup scripts. The resulting images are on Docker hub.

1 Like