diff --git a/.circleci/config.yml b/.circleci/config.yml index d9ef2f365419044c168b644fd5d6294addcbc998..863fb1dbd555e4a5f9de7e21900d6f20c3c90df8 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 0000000000000000000000000000000000000000..c4a5e79e99184a9246e7f707f0af5cad43bfa2a1 --- /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 0000000000000000000000000000000000000000..f5262374ff50e03519f4117fddea089bbc8b8f59 --- /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 0000000000000000000000000000000000000000..9a147fe28b7c7c77b913eac112792f17ad8e3f7c --- /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 0000000000000000000000000000000000000000..f5262374ff50e03519f4117fddea089bbc8b8f59 --- /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[@]}"