Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 43 additions & 17 deletions docker/base-images/base-admin-tools.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,38 +1,64 @@
ARG BASE_IMAGE=alpine:3.22
ARG BASE_IMAGE=registry.access.redhat.com/ubi9/ubi-minimal

FROM ${BASE_IMAGE} AS builder

# These are necessary to install cqlsh
RUN apk add --update --no-cache \
python3-dev \
musl-dev \
libev-dev \
RUN microdnf install -y \
python3-devel \
gcc \
pipx
shadow-utils \
&& microdnf clean all

RUN pipx install --global cqlsh
ENV PIPX_HOME=/opt/pipx
ENV PIPX_BIN_DIR=/usr/local/bin

RUN python3 -m ensurepip && \
python3 -m pip install --upgrade pip && \
pip install pipx && \
pipx install cqlsh

FROM ${BASE_IMAGE} AS base-admin-tools

RUN apk upgrade --no-cache
RUN apk add --no-cache \
RUN microdnf install -y \
python3 \
libev \
ca-certificates \
tzdata \
bash \
curl \
jq \
yq \
mysql-client \
postgresql-client \
tar \
gzip \
mysql \
postgresql \
expat \
tini
shadow-utils \
&& microdnf clean all

RUN curl -L https://github.com/mikefarah/yq/releases/download/v4.44.1/yq_linux_amd64 -o /usr/bin/yq && \
chmod +x /usr/bin/yq && \
curl -Lo /usr/bin/tini https://github.com/krallin/tini/releases/download/v0.19.0/tini && \
chmod +x /usr/bin/tini

ARG TEMPORAL_VERSION=1.27.2

RUN mkdir -p /usr/local/temporal/bin && \
curl -fsSL https://github.com/temporalio/temporal/releases/download/v${TEMPORAL_VERSION}/temporal_${TEMPORAL_VERSION}_linux_amd64.tar.gz \
| tar -xz -C /usr/local/temporal/bin --strip-components=0 && \
cp /usr/local/temporal/bin/temporal-sql-tool /usr/local/bin/temporal-sql-tool && \
chmod +x /usr/local/bin/temporal-sql-tool

ENV TEMPORAL_CLI_VERSION=0.13.0

RUN curl -fsSL \
https://github.com/temporalio/cli/releases/download/v${TEMPORAL_CLI_VERSION}/temporal_cli_${TEMPORAL_CLI_VERSION}_linux_amd64.tar.gz \
-o /tmp/temporal-cli.tar.gz && \
tar -xzf /tmp/temporal-cli.tar.gz -C /usr/local/bin temporal && \
chmod +x /usr/local/bin/temporal && \
rm /tmp/temporal-cli.tar.gz

COPY --from=builder /opt/pipx/venvs/cqlsh /opt/pipx/venvs/cqlsh
COPY --from=builder /opt/pipx /opt/pipx
RUN ln -s /opt/pipx/venvs/cqlsh/bin/cqlsh /usr/local/bin/cqlsh

# validate cqlsh installation
# Validate cqlsh installation
RUN cqlsh --version

SHELL ["/bin/bash", "-c"]
12 changes: 6 additions & 6 deletions docker/base-images/base-builder.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
FROM golang:1.24-alpine3.22 AS base-builder
FROM registry.access.redhat.com/ubi9/go-toolset:1.23 AS base-builder

RUN apk upgrade --no-cache
RUN apk add --no-cache \
make \
git \
curl
USER root

RUN dnf -y upgrade && \
dnf -y install make git && \
dnf clean all
38 changes: 28 additions & 10 deletions docker/base-images/base-ci-builder.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,28 @@
FROM golang:1.24-alpine3.22 AS base-ci-builder

RUN apk upgrade --no-cache
RUN apk add --no-cache \
make \
git \
protobuf \
build-base \
sed \
shellcheck
FROM registry.access.redhat.com/ubi9/go-toolset:1.23 AS base-ci-builder

USER root

# Install what we can from UBI repos
RUN dnf -y upgrade && \
dnf -y install \
make \
git \
gcc \
gcc-c++ \
sed \
unzip && \
dnf clean all

# Manually install shellcheck
RUN curl -sSL https://github.com/koalaman/shellcheck/releases/download/v0.9.0/shellcheck-v0.9.0.linux.x86_64.tar.xz | \
tar -xJ && \
cp shellcheck-v0.9.0/shellcheck /usr/local/bin/ && \
chmod +x /usr/local/bin/shellcheck && \
rm -rf shellcheck-v0.9.0*

# Manually install protoc (protobuf compiler)
RUN curl -sSL https://github.com/protocolbuffers/protobuf/releases/download/v24.4/protoc-24.4-linux-x86_64.zip -o protoc.zip && \
unzip protoc.zip -d /usr/local && \
chmod +x /usr/local/bin/protoc && \
rm -f protoc.zip

51 changes: 36 additions & 15 deletions docker/base-images/base-server.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,21 +1,42 @@
ARG BASE_IMAGE=alpine:3.22

FROM golang:1.24-alpine3.22 AS builder
FROM registry.access.redhat.com/ubi9/ubi-minimal AS fetcher

ARG TEMPORAL_VERSION=1.27.2
ARG DOCKERIZE_VERSION=v0.9.2
RUN go install github.com/jwilder/dockerize@${DOCKERIZE_VERSION}
RUN cp $(which dockerize) /usr/local/bin/dockerize

##### base-server target #####
FROM ${BASE_IMAGE} AS base-server
RUN microdnf install -y wget tar gzip ca-certificates && microdnf clean all

RUN wget -qO- https://github.com/jwilder/dockerize/releases/download/${DOCKERIZE_VERSION}/dockerize-linux-amd64-${DOCKERIZE_VERSION}.tar.gz \
| tar -xz -C /usr/local/bin

RUN cd /tmp && \
wget https://github.com/temporalio/temporal/releases/download/v${TEMPORAL_VERSION}/temporal_${TEMPORAL_VERSION}_linux_amd64.tar.gz && \
tar -xzf temporal_${TEMPORAL_VERSION}_linux_amd64.tar.gz -C /tmp/ && \
mv /tmp/temporal-server /usr/local/bin/temporal-server

# Download source tarball and extract schema
RUN curl -fsSL https://github.com/temporalio/temporal/archive/refs/tags/v${TEMPORAL_VERSION}.tar.gz \
| tar -xz --strip-components=1 -C /tmp \
temporal-${TEMPORAL_VERSION}/schema \
temporal-${TEMPORAL_VERSION}/config \
temporal-${TEMPORAL_VERSION}/docker/config_template.yaml && \
mkdir -p /etc/temporal/schema /etc/temporal/config && \
mv /tmp/schema /etc/temporal/schema && \
mv /tmp/config/* /etc/temporal/config/ && \
mv /tmp/docker/config_template.yaml /etc/temporal/config/


FROM registry.access.redhat.com/ubi9/ubi-minimal AS base-server

RUN microdnf install -y tzdata ca-certificates bash gettext hostname && microdnf clean all

RUN apk upgrade --no-cache
RUN apk add --no-cache \
ca-certificates \
tzdata \
bash \
curl
COPY --from=fetcher /usr/local/bin/dockerize /usr/local/bin/
COPY --from=fetcher /usr/local/bin/temporal-server /usr/local/bin/
COPY --from=fetcher /etc/temporal/config /etc/temporal/config
COPY --from=fetcher /etc/temporal/schema /etc/temporal/schema

COPY --from=builder /usr/local/bin/dockerize /usr/local/bin
COPY docker/entrypoint.sh docker/start-temporal.sh docker/auto-setup.sh /etc/temporal/
RUN chmod +x /etc/temporal/*.sh

SHELL ["/bin/bash", "-c"]
WORKDIR /etc/temporal
EXPOSE 7233 8233 9233
ENTRYPOINT ["/etc/temporal/entrypoint.sh"]