From 56b20649fa2f8a158a14808f309310f963961961 Mon Sep 17 00:00:00 2001 From: Brandon Pfeifer <bpfeifer@influxdata.com> Date: Mon, 14 Apr 2025 16:19:21 -0400 Subject: [PATCH] feat: add influxdb3-core and influxdb3-enterprise docker image --- .circleci/config.yml | 6 +++ influxdb3-core/3.0/Dockerfile | 55 ++++++++++++++++++++++++++ influxdb3-core/3.0/entrypoint.sh | 9 +++++ influxdb3-enterprise/3.0/Dockerfile | 55 ++++++++++++++++++++++++++ influxdb3-enterprise/3.0/entrypoint.sh | 9 +++++ 5 files changed, 134 insertions(+) create mode 100644 influxdb3-core/3.0/Dockerfile create mode 100755 influxdb3-core/3.0/entrypoint.sh create mode 100644 influxdb3-enterprise/3.0/Dockerfile create mode 100755 influxdb3-enterprise/3.0/entrypoint.sh diff --git a/.circleci/config.yml b/.circleci/config.yml index d9ef2f3..863fb1d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -27,6 +27,12 @@ workflows: - build: name: build-influxdb product: influxdb + - build: + name: build-influxdb3-core + product: influxdb3-core + - build: + name: build-influxdb3-enterprise + product: influxdb3-enterprise - build: name: build-kapacitor product: kapacitor diff --git a/influxdb3-core/3.0/Dockerfile b/influxdb3-core/3.0/Dockerfile new file mode 100644 index 0000000..c4a5e79 --- /dev/null +++ b/influxdb3-core/3.0/Dockerfile @@ -0,0 +1,55 @@ +FROM ubuntu:24.04 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install --no-install-recommends -y \ + ca-certificates \ + curl \ + gettext-base \ + gnupg \ + libssl3 && \ + rm -rf /var/lib/apt/lists* + +RUN groupadd --gid 1500 influxdb3 && \ + useradd --uid 1500 --gid influxdb3 --shell /bin/bash --create-home influxdb3 && \ + mkdir -p /var/lib/influxdb3 \ + /usr/lib/influxdb3 \ + /plugins + +ENV INFLUXDB_VERSION=3.0.0 +RUN case "$(dpkg --print-architecture)" in \ + amd64) ARCH=amd64 ;; \ + arm64) ARCH=arm64 ;; \ + *) echo 'Unsupported Architecture' ; exit 1 ;; \ + esac && \ + curl -fsSLO "https://dl.influxdata.com/influxdb/releases/influxdb3-core-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz.asc" \ + -fsSLO "https://dl.influxdata.com/influxdb/releases/influxdb3-core-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz" && \ + # Verify InfluxDB3 Core \ + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys \ + # InfluxData Package Signing Key <support@influxdata.com> \ + 9D539D90D3328DC7D6C8D3B9D8FF8E1F7DF8B07E && \ + gpg --batch --verify \ + "influxdb3-core-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz.asc" \ + "influxdb3-core-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz" && \ + # Install InfluxDB3 Core \ + tar --strip-components 1 -C /usr/lib/influxdb3 -xvf "influxdb3-core-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz" && \ + chown -R influxdb3:influxdb3 /var/lib/influxdb3 /plugins && \ + chown -R root:root /usr/lib/influxdb3 && \ + # Cleanup \ + rm "influxdb3-core-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz.asc" \ + "influxdb3-core-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz" + +COPY entrypoint.sh /usr/bin/entrypoint.sh + +USER influxdb3 +RUN mkdir ~/.influxdb3 + +ENV INFLUXDB3_PLUGIN_DIR=/plugins +ENV INFLUXDB3_DATA_DIR=/home/influxdb3/.influxdb3 +ENV INFLUXDB_IOX_DB_DIR=/var/lib/influxdb3 +ENV LOG_FILTER=info + +EXPOSE 8181 + +ENTRYPOINT ["/usr/bin/entrypoint.sh"] +CMD ["serve"] diff --git a/influxdb3-core/3.0/entrypoint.sh b/influxdb3-core/3.0/entrypoint.sh new file mode 100755 index 0000000..f526237 --- /dev/null +++ b/influxdb3-core/3.0/entrypoint.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -euo pipefail + +args=( "${@}" ) +for i in "${!args[@]}"; do + args[${i}]="$(echo "${args[${i}]}" | envsubst)" +done + +exec /usr/lib/influxdb3/influxdb3 "${args[@]}" diff --git a/influxdb3-enterprise/3.0/Dockerfile b/influxdb3-enterprise/3.0/Dockerfile new file mode 100644 index 0000000..9a147fe --- /dev/null +++ b/influxdb3-enterprise/3.0/Dockerfile @@ -0,0 +1,55 @@ +FROM ubuntu:24.04 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install --no-install-recommends -y \ + ca-certificates \ + curl \ + gettext-base \ + gnupg \ + libssl3 && \ + rm -rf /var/lib/apt/lists* + +RUN groupadd --gid 1500 influxdb3 && \ + useradd --uid 1500 --gid influxdb3 --shell /bin/bash --create-home influxdb3 && \ + mkdir -p /var/lib/influxdb3 \ + /usr/lib/influxdb3 \ + /plugins + +ENV INFLUXDB_VERSION=3.0.0 +RUN case "$(dpkg --print-architecture)" in \ + amd64) ARCH=amd64 ;; \ + arm64) ARCH=arm64 ;; \ + *) echo 'Unsupported Architecture' ; exit 1 ;; \ + esac && \ + curl -fsSLO "https://dl.influxdata.com/influxdb/releases/influxdb3-enterprise-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz.asc" \ + -fsSLO "https://dl.influxdata.com/influxdb/releases/influxdb3-enterprise-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz" && \ + # Verify InfluxDB3 Enterprise \ + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys \ + # InfluxData Package Signing Key <support@influxdata.com> \ + 9D539D90D3328DC7D6C8D3B9D8FF8E1F7DF8B07E && \ + gpg --batch --verify \ + "influxdb3-enterprise-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz.asc" \ + "influxdb3-enterprise-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz" && \ + # Install InfluxDB3 Enterprise \ + tar --strip-components 1 -C /usr/lib/influxdb3 -xvf "influxdb3-enterprise-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz" && \ + chown -R influxdb3:influxdb3 /var/lib/influxdb3 /plugins && \ + chown -R root:root /usr/lib/influxdb3 && \ + # Cleanup \ + rm "influxdb3-enterprise-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz.asc" \ + "influxdb3-enterprise-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz" + +COPY entrypoint.sh /usr/bin/entrypoint.sh + +USER influxdb3 +RUN mkdir ~/.influxdb3 + +ENV INFLUXDB3_PLUGIN_DIR=/plugins +ENV INFLUXDB3_DATA_DIR=/home/influxdb3/.influxdb3 +ENV INFLUXDB_IOX_DB_DIR=/var/lib/influxdb3 +ENV LOG_FILTER=info + +EXPOSE 8181 + +ENTRYPOINT ["/usr/bin/entrypoint.sh"] +CMD ["serve"] diff --git a/influxdb3-enterprise/3.0/entrypoint.sh b/influxdb3-enterprise/3.0/entrypoint.sh new file mode 100755 index 0000000..f526237 --- /dev/null +++ b/influxdb3-enterprise/3.0/entrypoint.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -euo pipefail + +args=( "${@}" ) +for i in "${!args[@]}"; do + args[${i}]="$(echo "${args[${i}]}" | envsubst)" +done + +exec /usr/lib/influxdb3/influxdb3 "${args[@]}" -- GitLab