Skip to content

Kubernetes tailored container images for various applications

License

Notifications You must be signed in to change notification settings

mdallaire/containers-onedr0p

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Containers

A Collection of Container Images Optimized for Kubernetes

GitHub Repo stars GitHub forks GitHub Workflow Status (with event)

Welcome to our container images, if looking for a container start by browsing the container packages.

Mission statement

The goal of this project is to support semantically versioned, rootless, and multiple architecture containers for various applications.

We also try to adhere to a KISS principle, logging to stdout, one process per container, no s6-overlay and all images are built on top of Alpine or Ubuntu.

Tag immutability

The containers built here do not use immutable tags, as least not in the more common way you have seen from linuxserver.io or Bitnami.

We do take a similar approach but instead of appending a -ls69 or -r420 prefix to the tag we instead insist on pinning to the sha256 digest of the image, while this is not as pretty it is just as functional in making the images immutable.

Container Immutable
ghcr.io/onedr0p/sonarr:rolling ❌
ghcr.io/onedr0p/sonarr:3.0.8.1507 ❌
ghcr.io/onedr0p/sonarr:rolling@sha256:8053... âś…
ghcr.io/onedr0p/sonarr:3.0.8.1507@sha256:8053... âś…

If pinning an image to the sha256 digest, tools like Renovate support updating the container on a digest or application version change.

Passing arguments to a application

Some applications do not support defining configuration via environment variables and instead only allow certain config to be set in the command line arguments for the app. To circumvent this, for applications that have an entrypoint.sh read below.

  1. First read the Kubernetes docs on defining command and arguments for a Container.

  2. Look up the documentation for the application and find a argument you would like to set.

  3. Set the argument in the args section, be sure to include entrypoint.sh as the first arg and any application specific arguments thereafter.

    args:
      - /entrypoint.sh
      - --port
      - "8080"

Configuration volume

For applications that need to have persistent configuration data the config volume is hardcoded to /config inside the container. This is not able to be changed in most cases.

Available Images

Each Image will be built with a rolling tag, along with tags specific to it's version. Available Images Below

Container Channel Image Latest Tags
bazarr stable ghcr.io/onedr0p/bazarr 1 1.3 1.3.1 rolling
cni-plugins stable ghcr.io/onedr0p/cni-plugins 1.3.0 rolling
emby stable ghcr.io/onedr0p/emby 4.7.14.0 rolling
flood stable ghcr.io/onedr0p/flood 4 4.7 4.7.0 rolling
github-actions-runner stable ghcr.io/onedr0p/github-actions-runner 2 2.310 2.310.2 rolling
home-assistant stable ghcr.io/onedr0p/home-assistant 2023.10.3 rolling
jbops stable ghcr.io/onedr0p/jbops 1 1.0 1.0.893 rolling
jellyfin stable ghcr.io/onedr0p/jellyfin 10.8.11 rolling
kubernetes-kubectl kubectl ghcr.io/onedr0p/kubernetes-kubectl 1.28.2 rolling
lidarr master ghcr.io/onedr0p/lidarr 1 1.4 1.4.5 1.4.5.3639 rolling
lidarr-develop develop ghcr.io/onedr0p/lidarr-develop 1 1.4 1.4.5 1.4.5.3639 rolling
lidarr-nightly nightly ghcr.io/onedr0p/lidarr-nightly 1 1.5 1.5.1 1.5.1.3665 rolling
lidarr-plugins plugins ghcr.io/onedr0p/lidarr-plugins 1.4.1.3564 rolling
par2cmdline-turbo stable ghcr.io/onedr0p/par2cmdline-turbo 1.1.0 rolling
plex stable ghcr.io/onedr0p/plex 1.32.6.7557-1cf77d501 rolling
plex-beta beta ghcr.io/onedr0p/plex-beta 1.32.7.7571-13cdc68dc rolling
postgres-init stable ghcr.io/onedr0p/postgres-init 14 14.9 rolling
prowlarr master ghcr.io/onedr0p/prowlarr 1 1.9 1.9.4 1.9.4.4039 rolling
prowlarr-develop develop ghcr.io/onedr0p/prowlarr-develop 1 1.9 1.9.4 1.9.4.4039 rolling
prowlarr-nightly nightly ghcr.io/onedr0p/prowlarr-nightly 1 1.10 1.10.0 1.10.0.4045 rolling
qbittorrent stable ghcr.io/onedr0p/qbittorrent 4 4.5 4.5.5 rolling
qbittorrent-beta beta ghcr.io/onedr0p/qbittorrent-beta 4 4.5 4.5.5 rolling
radarr master ghcr.io/onedr0p/radarr 5 5.0 5.0.3 5.0.3.8127 rolling
radarr-develop develop ghcr.io/onedr0p/radarr-develop 5 5.0 5.0.3 5.0.3.8127 rolling
radarr-nightly nightly ghcr.io/onedr0p/radarr-nightly 5 5.1 5.1.1 5.1.1.8183 rolling
readarr-develop develop ghcr.io/onedr0p/readarr-develop 0 0.3 0.3.7 0.3.7.2260 rolling
readarr-nightly nightly ghcr.io/onedr0p/readarr-nightly 0 0.3 0.3.9 0.3.9.2268 rolling
rtorrent stable ghcr.io/onedr0p/rtorrent 0.9.8-r16 rolling
sabnzbd stable ghcr.io/onedr0p/sabnzbd 4 4.1 4.1.0 rolling
sonarr main ghcr.io/onedr0p/sonarr 3 3.0 3.0.10 3.0.10.1567 rolling
sonarr-develop develop ghcr.io/onedr0p/sonarr-develop 4 4.0 4.0.0 4.0.0.700 rolling
tautulli master ghcr.io/onedr0p/tautulli 2 2.13 2.13.1 rolling
theme-park stable ghcr.io/onedr0p/theme-park 1.14 rolling
transmission stable ghcr.io/onedr0p/transmission 4.0.4 rolling
tvheadend stable ghcr.io/onedr0p/tvheadend 4 4.3 4.3.10008 rolling
udp-broadcast-relay-redux stable ghcr.io/onedr0p/udp-broadcast-relay-redux 1.0.27 rolling
unpackerr stable ghcr.io/onedr0p/unpackerr 0 0.12 0.12.0 rolling

Contributing

  1. Install Docker, Taskfile & Cuelang

  2. Get familiar with the structure of the repositroy

  3. Find a similar application in the apps directory

  4. Copy & Paste an application and update the directory name

  5. Update metadata.json, Dockerfile, ci/latest.sh, ci/goss.yaml and make it suit the application build

  6. Include any additional files if required

  7. Use Taskfile to build and test your image

    task APP=sonarr CHANNEL=main test

Automated tags

Here's an example of how tags are created in the GitHub workflows, be careful with metadata.json as it does affect the outcome of how the tags will be created when the application is built.

Application Channel Stable Base Generated Tag
ubuntu focal true true ubuntu:focal-rolling
ubuntu focal true true ubuntu:focal-19880312
alpine 3.16 true true alpine:rolling
alpine 3.16 true true alpine:3.16.0
sonarr develop false false sonarr-develop:3.0.8.1538
sonarr develop false false sonarr-develop:rolling
sonarr main true false sonarr:3.0.8.1507
sonarr main true false sonarr:rolling

Deprecations

Containers here can be deprecated at any point, this could be for any reason described below.

  1. The upstream application is no longer actively developed
  2. The upstream application has an official upstream container that follows closely to the mission statement described here
  3. The upstream application has been replaced with a better alternative
  4. The maintenance burden of keeping the container here is too bothersome

Note: Deprecated containers will remained published to this repo for 6 months after which they will be pruned.

Credits

A lot of inspiration and ideas are thanks to the hard work of hotio.dev and linuxserver.io contributors.

About

Kubernetes tailored container images for various applications

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 52.2%
  • Dockerfile 46.1%
  • Other 1.7%