Skip to content

Build Deps

ThoriumLXC container image architecture follows a modular approach, breaking down the build process into distinct layers. The starting point of this architecture is the Build Dependencies layer, which manages the libraries, tools and system packages required to compile the emulator server.

Tip

Build Dependencies are often shortened to "BuildDeps" or just "Deps"

flowchart TD
    A[Build Deps Image] --> B[Builder Image]
    B -->|Build Artifacts| D[Release Image]
    C[Runtime Image] -->|Runtime Dependencies| D

    classDef highlighted stroke-width:2px;
    classDef faded fill-opacity:0.2,stroke:#000,stroke-width:1px;

    class A highlighted;
    class B faded;
    class C faded;
    class D faded;

What are Build Deps?

Build Deps (short for Build Dependencies) refer to the essential system libraries, development tools, and other dependencies needed to build the emulator server. These include:

  • Standard Libraries (e.g., libc, libssl)
  • Development Tools (e.g., gcc, make, cmake)
  • Debian Packages required for compiling the source code
  • Other system-level dependencies essential for the build process

These dependencies are only used during the build phase and are not included in the final runtime image.

The Builder Image

The Builder image builds on top of the Build Deps image, which will use these dependencies to build the source code bundled within the builder. This means that for a new version of the source code, the builder image will change, but the Build Deps image will not.

The Builder image is solely responsible for the build process. It does not include runtime components, keeping it focused and optimized for its purpose.

How It All Fits Together

  1. Build Deps Layer: Provides the tools, libraries & system packages required to build.
  2. Builder Image: Utilizes the Build Deps layer to compile the server code.
  3. Release Runtime Image: Contains only the compiled binaries and runtime dependencies.