210 General Purpose Applications

title: “General-Purpose Application Containerization” tags: [“kb”]

General-Purpose Application Containerization

This section outlines the containerization strategy for general-purpose Linux services, distinct from the AI/ML applications.

1. Core Principles

  • Custom Base Image: Applications are built upon a minimal Ubuntu base image (linuxserver/ubuntu-baseimage) which is custom-built using a multi-stage Docker process.
  • Process Management: s6-overlay is integrated into the custom base image for robust process supervision and container initialization.
  • Lean Foundation: The emphasis is on creating a lean and efficient foundational image for common Linux services.

2. Key General-Purpose Applications and Their Dockerfiles

2.1. linuxserver/jellyfin Media Server

  • Dockerfile: Defines the Docker image for the Jellyfin media server, provided by the LinuxServer.io team.
  • Base Image: Builds upon the custom linuxserver/ubuntu-baseimage.
  • Features: Incorporates s6-overlay for process management.
  • Documentation: Comprehensive README.md detailing purpose, supported architectures, usage, and configuration parameters.
  • Running: Exposes ports 8096 (HTTP) and optionally 8920 (HTTPS), 7359/udp, 1900/udp. Entrypoint is /init (due to s6-overlay).
  • Volume Mounting: /config is used for application data. Media libraries are expected at /data/tvshows and /data/movies.
  • Hardware Acceleration: The README.md details hardware acceleration options for Intel, Nvidia, and Raspberry Pi.

2.2. linuxserver/ubuntu-baseimage

  • Dockerfile: Defines a multi-stage Docker image used to create a minimal Ubuntu base image.
  • Staging Base: Uses alpine:3.12 and scratch in its multi-stage build process.
  • Build Process: Extracts a root filesystem from an Ubuntu cloud image and integrates s6-overlay.
  • Purpose: Serves as a foundational image for other general-purpose applications like Jellyfin.
  • Documentation: Dedicated README.md describing it as a custom base image for the linuxserver/docker-baseimage-ubuntu project.