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-overlayis 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-overlayfor process management. - Documentation: Comprehensive
README.mddetailing purpose, supported architectures, usage, and configuration parameters. - Running: Exposes ports 8096 (HTTP) and optionally 8920 (HTTPS), 7359/udp, 1900/udp. Entrypoint is
/init(due tos6-overlay). - Volume Mounting:
/configis used for application data. Media libraries are expected at/data/tvshowsand/data/movies. - Hardware Acceleration: The
README.mddetails 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.12andscratchin 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.mddescribing it as a custom base image for thelinuxserver/docker-baseimage-ubuntuproject.