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