Giter Club home page Giter Club logo

containers's Introduction

Containers

An opinionated collection of container images

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

Welcome to my container images, if looking for a container start by browsing the GitHub Packages page for this repo's packages.

Mission statement

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

It also adheres 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/jfroy/sonarr:rolling
ghcr.io/jfroy/sonarr:3.0.8.1507
ghcr.io/jfroy/sonarr:rolling@sha256:8053...
ghcr.io/jfroy/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.

Rootless

To run these containers as non-root make sure you update your configuration to the user and group you want.

Docker compose

networks:
  sonarr:
    name: sonarr
    external: true
services:
  sonarr:
    image: ghcr.io/jfroy/sonarr:3.0.8.1507
    container_name: sonarr
    user: 65534:65534
    # ...

Kubernetes

apiVersion: apps/v1
kind: Deployment
metadata:
  name: sonarr
# ...
spec:
  # ...
  template:
    # ...
    spec:
      # ...
      securityContext:
        runAsUser: 65534
        runAsGroup: 65534
        fsGroup: 65534
        fsGroupChangePolicy: OnRootMismatch
# ...

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
actions-runner stable ghcr.io/jfroy/actions-runner
bazarr stable ghcr.io/jfroy/bazarr
jbops stable ghcr.io/jfroy/jbops
lidarr-develop develop ghcr.io/jfroy/lidarr-develop
par2cmdline-turbo stable ghcr.io/jfroy/par2cmdline-turbo
plex stable ghcr.io/jfroy/plex
plex-beta beta ghcr.io/jfroy/plex-beta
postgres-init stable ghcr.io/jfroy/postgres-init
prowlarr-develop develop ghcr.io/jfroy/prowlarr-develop
qbittorrent stable ghcr.io/jfroy/qbittorrent
qbittorrent-beta beta ghcr.io/jfroy/qbittorrent-beta
radarr-develop develop ghcr.io/jfroy/radarr-develop
readarr-develop develop ghcr.io/jfroy/readarr-develop
sabnzbd stable ghcr.io/jfroy/sabnzbd
sonarr main ghcr.io/jfroy/sonarr
sonarr-develop develop ghcr.io/jfroy/sonarr-develop
theme-park stable ghcr.io/jfroy/theme-park
volsync stable ghcr.io/jfroy/volsync
vuetorrent stable ghcr.io/jfroy/vuetorrent
whisparr-nightly nightly ghcr.io/jfroy/whisparr-nightly

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 onedr0p, hotio.dev, and linuxserver.io contributors.

containers's People

Contributors

9numbernine9 avatar anthr76 avatar auricom avatar bjw-s avatar bot-ross[bot] avatar buroa avatar casmith avatar cdloh avatar chkpwd avatar crutonjohn avatar enmanuelmoreira avatar github-actions[bot] avatar ishioni avatar jameshurst avatar jfroy avatar jfroy-bot[bot] avatar jjgadgets avatar luclu avatar mmalyska avatar moenzuel avatar npawelek avatar onedr0p avatar opello avatar prehor avatar renovate[bot] avatar rtrox avatar rust84 avatar samip5 avatar szinn avatar toboshii avatar

containers's Issues

Renovate Dashboard 🤖

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

This repository currently has no open or pending branches.

Detected dependencies

dockerfile
apps/actions-runner/Dockerfile
apps/bazarr/Dockerfile
  • docker.io/library/python 3.12-alpine
  • ghcr.io/linuxserver/unrar 7.0.7
apps/jbops/Dockerfile
  • docker.io/library/python 3.12-alpine
apps/lidarr/Dockerfile
  • docker.io/library/alpine 3.20
apps/par2cmdline-turbo/Dockerfile
  • docker.io/library/alpine 3.20
  • docker.io/library/alpine 3.20
apps/plex/Dockerfile
  • docker.io/library/ubuntu 24.04
apps/postgres-init/Dockerfile
  • docker.io/library/alpine 3.20
apps/prowlarr/Dockerfile
  • docker.io/library/alpine 3.20
apps/qbittorrent/Dockerfile
  • docker.io/library/alpine 3.20
apps/radarr/Dockerfile
  • docker.io/library/alpine 3.20
apps/readarr/Dockerfile
  • docker.io/library/alpine 3.20
apps/sabnzbd/Dockerfile
  • docker.io/library/python 3.12-alpine
  • ghcr.io/jfroy/par2cmdline-turbo 1.1.1
  • ghcr.io/linuxserver/unrar 7.0.7
apps/sonarr/Dockerfile
  • docker.io/library/alpine 3.20
apps/theme-park/Dockerfile
  • ghcr.io/nginxinc/nginx-unprivileged 1.27
apps/volsync/Dockerfile
  • docker.io/library/golang 1.22-alpine
  • docker.io/library/alpine 3.20.0
  • docker.io/rclone/rclone 1.67.0
  • docker.io/restic/restic 0.16.4
apps/vuetorrent/Dockerfile
  • docker.io/library/alpine 3.20
  • docker.io/library/alpine 3.20
apps/whisparr/Dockerfile
  • docker.io/library/golang 1.22-alpine
  • docker.io/library/alpine 3.20
github-actions
.github/workflows/build-images.yaml
  • actions/create-github-app-token v1
  • actions/checkout v4
  • actions/setup-python v5
  • actions/create-github-app-token v1
  • actions/checkout v4
  • docker/setup-buildx-action v3
  • docker/login-action v3
  • e1himself/goss-installation-action v1
  • docker/build-push-action v6
  • actions/upload-artifact v4
  • actions/download-artifact v4
  • docker/setup-buildx-action v3
  • docker/login-action v3
  • sarisia/actions-status-discord v1
.github/workflows/get-changed-images.yaml
  • actions/checkout v4
  • tj-actions/changed-files v44
.github/workflows/label-sync.yaml
  • actions/create-github-app-token v1
  • actions/checkout v4
  • EndBug/label-sync v2
.github/workflows/pr-validate.yaml
.github/workflows/release-on-push.yaml
.github/workflows/release-scheduled.yaml
.github/workflows/render-readme.yaml
  • actions/create-github-app-token v1
  • actions/checkout v4
  • actions/setup-python v5
.github/workflows/renovate.yaml
  • actions/create-github-app-token v1
  • actions/checkout v4
  • renovatebot/github-action v40.1.12
.github/workflows/simple-checks.yaml
  • actions/checkout v4
  • tj-actions/changed-files v44
  • cue-lang/setup-cue v1.0.1
pip_requirements
.github/scripts/requirements.txt

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.