stackabletech / docker-images

Apache License 2.0
17 stars 3 forks source link

Stackable Docker Images

This repository contains Dockerfiles and scripts to build base images for use within Stackable.

Build Airflow Build Druid Build Hadoop Build HBase
Build Hello-World Build Hive Build Java Base Build Java Development
Build Kafka Testing Tools Build Kafka Build kcat Build Krb5
Build NiFi Build Omid Build OPA Build Spark K8s
Build Stackable Base Build Superset Build Testing Tools Build Tools
Build Trino CLI Build Trino Build Vector Build ZooKeeper

Prerequisites

Build Product Images

Product images are published to the docker.stackable.tech registry under the stackable organization by default.

Build single products locally

To build and push product images to the default repository use this command:

bake --product zookeeper --image 0.0.0-dev --push

This will build images for Apache ZooKeeper versions as defined in the conf.py file, tag them with the image-version 0.0.0-dev and push them to the registry.

You can select a specific version of a product to build using the syntax product=version e.g. to build Hive 3.1.3 you can use this command:

bake --product hive=3.1.3 -i 0.0.0-dev

[!NOTE] -i is the shorthand for --image (i.e. the resulting image tag)

Build all products locally

To build all products in all versions locally you can use this command

bake --image-version 0.0.0-dev

Build everything in GitHub

The GitHub action called Build (and optionally publish) 0.0.0-dev images can be triggered manually to do build all images in all versions. When triggered manually it will not push the images to the registry.

Verify Product Images

To verify if Apache Zookeeper validate against OpenShift preflight, run:

check-container --product zookeeper --image 0.0.0-dev

ubi8-rust-builder / ubi9-rust-builder

These images are meant to be used in multi-stage builds as a base image for projects building Rust projects. They are automatically rebuilt and pushed every night and also on every push to the main branch, in addition a build can be triggered using GitHub Actions.

The image will run cargo build --release in the current context and copy all binaries to an /app directory.

This will bake in the current stable Rust version at the time this image was built, which means it should be rebuilt (and tagged) for every release of Rust.

Example usage

FROM docker.stackable.tech/ubi9-rust-builder AS builder

FROM registry.access.redhat.com/ubi9/ubi-minimal AS operator
LABEL maintainer="Stackable GmbH"

# Update image
RUN microdnf update \
  && microdnf install \
    shadow-utils \
  && rm -rf /var/cache/yum

COPY --from=builder /app/stackable-zookeeper-operator /

RUN groupadd -g 1000 stackable && adduser -u 1000 -g stackable -c 'Stackable Operator' stackable

USER 1000:1000

ENTRYPOINT ["/stackable-zookeeper-operator"]