• Stars
    star
    287
  • Rank 143,356 (Top 3 %)
  • Language
    Dockerfile
  • License
    Apache License 2.0
  • Created about 2 years ago
  • Updated 21 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

My collection of container images

Container images

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 take 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.

Contributing

NOTE: Github issues are disabled because people have a hard time updating the Renovate config which leads to my issues being spammed with a new issue every hour. Whomever own consuela-bot please do the needful so I can enable issues again.

  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.

More Repositories

1

home-ops

Wife approved HomeOps driven by Kubernetes and GitOps using Flux
Shell
1,912
star
2

cluster-template

A template for deploying a Talos Kubernetes cluster including Flux for GitOps
Python
1,757
star
3

exportarr

AIO Prometheus Exporter for Sabnzbd, Bazarr, Prowlarr, Lidarr, Readarr, Radarr, and Sonarr
Go
530
star
4

k3s-gitops-arm

k3s cluster backed by Flux (GitOps) up and running on a cluster of RPi4
Shell
146
star
5

k3s-homeops-ansible

Bootstrap a k3s cluster on top of Ubuntu 20.04
HTML
54
star
6

sops-pre-commit

Sops pre-commit hook
Jinja
41
star
7

home-operations

Highly opinionated Ansible playbooks, Ansible roles, and other things that are used to maintain my home-cluster
Dockerfile
28
star
8

unofficial-builds-for-vyos

Unofficial builds for VyOS™ - Because the cost to get LTS is too damn high for our Home Labs
26
star
9

home-service

My home service stack running on a Beelink EQ12 with Fedora IoT. These podman services are supporting my home infrastructure including, DNS and Kubernetes clusters.
Shell
25
star
10

intel-gpu-exporter

Python
23
star
11

dotfiles

My fish compatible dotfiles managed by chezmoi
Shell
15
star
12

gluctl

The glue that helps maintain a Kubernetes Home Lab
JavaScript
12
star
13

kubanetics

A container with various scripts for Kubernetes
Shell
12
star
14

qbittorrent-prune

Remove torrents from qBittorrent that are reported unregistered by a tracker
Shell
8
star
15

dns-in-a-bottle

AIO container for running bind, blocky and dnsdist
Dockerfile
6
star
16

hass-config

Home Assistant configuration for my home
Python
5
star
17

opnsense-coredns

A CoreDNS FreeBSD build specifically for OPNsense which includes some additional plugins
Dockerfile
5
star
18

qbittorrent-scripts

Python
4
star
19

sonarr-episode-prune

Delete episodes from specified series in Sonarr
Python
4
star
20

containers-mirror

Stop-gap container registry mirror of upstream applications that only use Docker Hub
Dockerfile
4
star
21

radarr-exporter

Prometheus Exporter for Radarr
Go
3
star
22

sonarr-exporter

Prometheus Exporter for Sonarr
Go
3
star
23

opaws

CLI tool to sign into AWS (MFA) accounts using 1Password
Shell
2
star
24

custom-error-pages

My custom error pages for the nginx-ingress controller
HTML
2
star
25

doks-cluster

Testing Flux with Digital Ocean Kubernetes Service
HCL
2
star
26

flux-repository-collection

A collection of various (Bucket|Git|Helm|OCI) Repositories for use with Flux
2
star
27

k3s-staging

Jinja
2
star
28

pi4-cluster-example

Test Flux2 GitOps Cluster
Shell
2
star
29

fcos-build

1
star
30

vyos-config

My VyOS configuration
1
star
31

makejinja-mjfilter-example

Python
1
star
32

draft-on-labels-action

GitHub Action to update a pull request to a draft based on labels
TypeScript
1
star
33

onedr0p.github.io

Support Devin
HTML
1
star
34

onedr0p

1
star
35

.github

1
star
36

container-images-refactor

1
star