Skip to content

P1052417164/bitnami-compat

 
 

Repository files navigation

Bitnami-Compat

Inactively Maintained Update bitnami-dockers Build

What is Bitnami-Compat?

  • This repository builds multi-arch (linux/amd64 + linux/arm64) docker images for some bitnami charts.

  • This is a workaround for bitnami/charts#7305.

  • These images are NOT intended for production use.

    • I don't have time to test every images and I haven't built the infrastructure to test them.
    • In other words, this repository has no release management process and no support for it.
    • This repository is maintained for my homelab.
  • These images use Bitnami's scripts. Binaries refer to the official Docker or official distribution binaries of the software or Docker recipes for Docker.

Update bitnami-dockers schedule

  • Every friday.

  • ⚠️ Recently deleted for old images older than 30 days. I think I'm using too much storage (I'm GitHub Free plan user...), so I'm cleaning it up. In the case of an old image, it may have been deleted, and in that case, a manifest unknown error occurs when docker pull is performed. Since this is a multi-arch image, the layer connected to the tag is deleted and only the manifest remains.

Usage #1

  • I know I can't make the images in this repository trustworthy, and I know I can't fix it. This repository is just a personal repository.

  • If you want to use the images, It is recommended not to use the image directly, but to create Dockerfile.arm64 by following the instructions below and then verify and use it.

  • Create Dockerfile.arm64 for bitnami-dockers

    1. install task https://taskfile.dev/installation/
    2. install golang https://go.dev/doc/install
    3. clone
    git clone https://github.com/ZCube/bitnami-compat
    cd bitnami-compat
    task generate
    1. verify Dockerfile.arm64. Official images or build scripts referenced for build are listed in the table below.
    2. build & use.
  • PS. Rabbitmq and fluentd builds are too long. Depending on the machine, it is best to prepare for 1-2 hours.

Usage #2

  • TL;DR

from

image:
  registry: docker.io
  repository: bitnami/postgresql
  tag: 11.16.0-debian-11-r14

to

image:
  registry: ghcr.io
  repository: zcube/bitnami-compat/postgresql
  tag: 11.16.0-debian-11-r15

Supported bitnami charts

✔️  cert-manager
✔️  common
✔️  consul
✔️  contour
✔️  contour-operator
✔️  elasticsearch
✔️  etcd
✔️  external-dns
✔️  fluentd
✔️  kafka
✔️  keycloak
✔️  mariadb
✔️  mariadb-galera
✔️  memcached
✔️  minio
✔️  mongodb
✔️  mongodb-sharded
✔️  mysql
✔️  nginx
✔️  postgresql
✔️  postgresql-ha
✔️  rabbitmq
✔️  rabbitmq-cluster-operator
✔️  redis
✔️  redis-cluster
✔️  sealed-secrets
✔️  solr
✔️  thanos
✔️  tomcat
✔️  wordpress
✔️  zookeeper
❓  apache
  ❌  apache
  ✔️  git
  ✔️  apache-exporter
❓  nginx-ingress-controller
  ❌  nginx-ingress-controller
  ✔️  nginx
❓  nginx-intel
  ❌  nginx-intel
  ✔️  git
  ✔️  nginx-exporter
❓  wordpress-intel
  ❌  wordpress-intel
  ✔️  bitnami-shell
  ✔️  nginx-exporter
  • For wordpress-intel charts, try using wordpress-nginx instead of wordpress-intel images.

Binary References

Package Type Reference Base
acmesolver DockerImage https://quay.io/jetstack/cert-manager-acmesolver bitnami/minideb
cainjector DockerImage https://quay.io/jetstack/cert-manager-cainjector bitnami/minideb
cert-manager DockerImage https://quay.io/jetstack/cert-manager-controller bitnami/minideb
cert-manager-webhook DockerImage https://quay.io/jetstack/cert-manager-webhook bitnami/minideb
consul DockerImage https://hub.docker.com/_/consul bitnami/minideb
consul-exporter Dockerfile https://hub.docker.com/r/prom/consul-exporter bitnami/minideb
elasticsearch Install https://www.elastic.co/guide/en/elasticsearch/reference/current/targz.html bitnami/minideb
etcd Dockerfile https://gcr.io/etcd-development/etcd bitnami/minideb
fluentd Dockerfile https://github.com/fluent/fluentd-docker-image bitnami/minideb
jmx-exporter Install https://repo1.maven.org/maven2/io/prometheus/jmx bitnami/minideb
kafka Install https://downloads.apache.org/kafka bitnami/minideb
kubectl Install https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/ bitnami/minideb
keycloak Dockerfile https://github.com/keycloak/keycloak-containers bitnami/minideb
mariadb Dockerfile https://github.com/MariaDB/mariadb-docker bitnami/minideb
mariadb-galera Dockerfile https://github.com/MariaDB/mariadb-docker bitnami/minideb
memcached Dockerfile https://github.com/docker-library/memcached bitnami/minideb
minio DockerImage https://hub.docker.com/r/minio/minio bitnami/minideb
minio-client DockerImage https://hub.docker.com/r/minio/mc bitnami/minideb
mongodb Dockerfile https://github.com/docker-library/mongo bitnami/minideb
mysql DockerImage https://hub.docker.com/r/mysql mysql/mysql-server
mysqld-exporter Dockerfile https://hub.docker.com/r/prom/mysqld-exporter bitnami/minideb
nginx Dockerfile https://github.com/nginxinc/docker-nginx bitnami/minideb
pgpool Dockerfile https://github.com/docker-library/postgres bitnami/minideb
postgresql Dockerfile https://github.com/docker-library/postgres bitnami/minideb
postgresql-repmgr Dockerfile https://github.com/docker-library/postgres bitnami/minideb
rabbitmq Dockerfile https://github.com/docker-library/rabbitmq bitnami/minideb
redis Dockerfile https://github.com/docker-library/redis bitnami/minideb
redis-cluster Dockerfile https://github.com/docker-library/redis bitnami/minideb
redis-exporter DockerImage https://hub.docker.com/r/oliver006/redis_exporter bitnami/minideb
redis-sentinel Dockerfile https://github.com/docker-library/redis bitnami/minideb
tomcat Install https://downloads.apache.org/tomcat bitnami/minideb
wordpress bitnami/minideb
zookeeper Install https://downloads.apache.org/zookeeper bitnami/minideb

Supported images and tags

Install Task

sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin

List docker image patch status

go run main.go list
...
✔️  mongodb:5.0.9
✔️  mongodb-exporter:0.33.0
❌  mysql:5.7.38
  ❌  mysql.5.7.38-150
✔️  mysql:8.0.29
✔️  mysqld-exporter:0.14.0
❌  nginx:1.21.6
  ❌  nginx.1.21.6-153
❌  nginx:1.22.0
  ❌  nginx.1.22.0-153
✔️  nginx:1.23.0
...

Generate Dockerfile.arm64

task generate

Upgrade bitnami docker repositories

task upgrade

How to add a new image

Example : mariadb/10.8

  1. Add submodule
cd bitnami-dockers
git submodule add https://github.com/bitnami/bitnami-docker-mariadb
cd ..
go run main.go makeDirs
  1. Write build scripts
  • patches/golang/mariadb/10.8/install.sh
  • patches/docker/mariadb/10.8/Dockerfile.from
  • patches/docker/mariadb/10.8/Dockerfile.install
  • patches/bash/mariadb/10.8/install.sh
  1. Apply and test
task generate
cd bitnami-dockers/bitnami-docker-mariadb/10.8/debian-11
docker buildx create --name multiarchbuilder
docker buildx inspect multiarchbuilder --bootstrap
docker buildx use multiarchbuilder
docker buildx build --platform linux/amd64,linux/arm64 -t testimage . -f Dockerfile.arm64
docker run --rm -ti testimage

Compatible Images for Bitnami Charts

  • Recommended for production use.
Charts Image Status
thanos docker.io/thanosio/thanos:v0.27.0 Official images are compatible.
external-dns registry.k8s.io/external-dns/external-dns:v0.12.2 Official images are compatible.

Todo list

  • Create Containers manifest.
  • Version check tool for compatible images.
  • [*] Trivy scan.
  • Minimal tests. ( like : kubectl version --client=true, docker compose up )
  • Add Release branches & tags. ( weekly?, monthly? )
  • Faster build for multistaged images.
  • Split app patches and components patches.
  • Render Dockerfile.arm64 to repository.
  • Get an Arm64 machine for build and testing.
  • Remove unused apps.
  • Improve Readme template.
  • [*] Add docker labels for notice.

License

Apache 2.0

License for generator (Golang scripts)

MIT License

License for patches

check References

License for Bitnami docker scripts

Apache 2.0

Warning

This repository contains sources, binaries and recipes from Bitnami and other software. Each software has its own license.

These images are not well tested.

This repository is considered for personal use only.

This repository lacks support for production use.

This repository is provided as is.

It might be dangerous for production use. Use after testing

About

A workaround for bitnami chart arm64

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 65.6%
  • Shell 34.2%
  • Dockerfile 0.2%