Skip to content

Commit dc6a39c

Browse files
authored
Merge pull request #790 from influxdata/db/update-influxdb-1.12
2 parents 0c84985 + 014b126 commit dc6a39c

23 files changed

+899
-0
lines changed

.circleci/config.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ workflows:
4949
- "influxdb/1.10/meta"
5050
- "influxdb/1.11/data"
5151
- "influxdb/1.11/meta"
52+
- "influxdb/1.12/data"
53+
- "influxdb/1.12/meta"
5254

5355
jobs:
5456
build:

influxdb/1.12/Dockerfile

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
FROM buildpack-deps:bookworm-curl
2+
3+
RUN addgroup --system --gid 1500 influxdb && \
4+
adduser --system --uid 1500 --ingroup influxdb --home /var/lib/influxdb --shell /bin/false influxdb
5+
6+
ARG INFLUXDB_VERSION=1.12.0
7+
RUN set -x && \
8+
case "$(dpkg --print-architecture)" in \
9+
amd64) ARCH=amd64 ;; \
10+
arm64) ARCH=arm64 ;; \
11+
*) echo 'Unsupported Architecture' ; exit 1 ;; \
12+
esac && \
13+
curl -fsSLO "https://dl.influxdata.com/influxdb/releases/v${INFLUXDB_VERSION}/influxdb_${INFLUXDB_VERSION}-1_${ARCH}.deb.asc" \
14+
-fsSLO "https://dl.influxdata.com/influxdb/releases/v${INFLUXDB_VERSION}/influxdb_${INFLUXDB_VERSION}-1_${ARCH}.deb" && \
15+
# Verify InfluxDB 1.X OSS \
16+
gpg --batch --keyserver hkp://keyserver.ubuntu.com --recv-keys \
17+
# InfluxData Package Signing Key <[email protected]> \
18+
9D539D90D3328DC7D6C8D3B9D8FF8E1F7DF8B07E && \
19+
gpg --batch --verify \
20+
"influxdb_${INFLUXDB_VERSION}-1_${ARCH}.deb.asc" \
21+
"influxdb_${INFLUXDB_VERSION}-1_${ARCH}.deb" && \
22+
# Install InfluxDB 1.X OSS \
23+
export DEBIAN_FRONTEND=noninteractive && \
24+
apt-get update && \
25+
apt-get install --no-install-recommends -y \
26+
"/influxdb_${INFLUXDB_VERSION}-1_${ARCH}.deb" && \
27+
# Cleanup \
28+
rm -r "influxdb_${INFLUXDB_VERSION}-1_${ARCH}.deb.asc" \
29+
"influxdb_${INFLUXDB_VERSION}-1_${ARCH}.deb" \
30+
/var/lib/apt/lists/*
31+
32+
COPY influxdb.conf /etc/influxdb/influxdb.conf
33+
34+
EXPOSE 8086
35+
VOLUME /var/lib/influxdb
36+
COPY entrypoint.sh /entrypoint.sh
37+
COPY init-influxdb.sh /init-influxdb.sh
38+
USER influxdb
39+
ENTRYPOINT ["/entrypoint.sh"]
40+
CMD ["influxd"]

influxdb/1.12/alpine/Dockerfile

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
FROM alpine:3.21
2+
3+
RUN apk add --no-cache bash ca-certificates tzdata && \
4+
update-ca-certificates
5+
6+
ARG INFLUXDB_VERSION=1.12.0
7+
RUN apk add --no-cache --virtual .build-deps curl gnupg tar && \
8+
case "$(apk --print-arch)" in \
9+
x86_64) ARCH=amd64 ;; \
10+
aarch64) ARCH=arm64 ;; \
11+
*) echo 'Unsupported Architecture' ; exit 1 ;; \
12+
esac && \
13+
curl -fsSLO "https://dl.influxdata.com/influxdb/releases/v${INFLUXDB_VERSION}/influxdb-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz.asc" \
14+
-fsSLO "https://dl.influxdata.com/influxdb/releases/v${INFLUXDB_VERSION}/influxdb-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz" && \
15+
# Verify InfluxDB 1.X OSS \
16+
gpg --batch --keyserver hkp://keyserver.ubuntu.com --recv-keys \
17+
# InfluxData Package Signing Key <[email protected]> \
18+
9D539D90D3328DC7D6C8D3B9D8FF8E1F7DF8B07E && \
19+
gpg --batch --verify \
20+
"influxdb-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz.asc" \
21+
"influxdb-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz" && \
22+
# Install InfluxDB 1.X OSS \
23+
tar -xvf "influxdb-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz" \
24+
-C / --strip-components 1 --wildcards \
25+
'influxdb-*/usr/bin/influx' \
26+
'influxdb-*/usr/bin/influx_inspect' \
27+
'influxdb-*/usr/bin/influxd' && \
28+
# Cleanup \
29+
rm "influxdb-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz.asc" \
30+
"influxdb-${INFLUXDB_VERSION}_linux_${ARCH}.tar.gz" && \
31+
apk del .build-deps
32+
33+
COPY influxdb.conf /etc/influxdb/influxdb.conf
34+
35+
RUN addgroup --system --gid 1500 influxdb && \
36+
adduser --system --uid 1500 --ingroup influxdb --home /var/lib/influxdb --shell /bin/false influxdb && \
37+
mkdir -p /var/lib/influxdb && \
38+
mkdir -p /var/log/influxdb && \
39+
chown influxdb:influxdb /var/lib/influxdb && \
40+
chown influxdb:influxdb /var/log/influxdb && \
41+
chmod 0750 /var/lib/influxdb && \
42+
chmod 0750 /var/log/influxdb
43+
44+
EXPOSE 8086
45+
VOLUME /var/lib/influxdb
46+
COPY entrypoint.sh /entrypoint.sh
47+
COPY init-influxdb.sh /init-influxdb.sh
48+
USER influxdb
49+
ENTRYPOINT ["/entrypoint.sh"]
50+
CMD ["influxd"]

influxdb/1.12/alpine/entrypoint.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/bash
2+
set -e
3+
4+
if [ "${1:0:1}" = '-' ]; then
5+
set -- influxd "$@"
6+
fi
7+
8+
if [ "$1" = 'influxd' ]; then
9+
/init-influxdb.sh "${@:2}"
10+
fi
11+
12+
exec "$@"

influxdb/1.12/alpine/influxdb.conf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[meta]
2+
dir = "/var/lib/influxdb/meta"
3+
4+
[data]
5+
dir = "/var/lib/influxdb/data"
6+
engine = "tsm1"
7+
wal-dir = "/var/lib/influxdb/wal"

influxdb/1.12/alpine/init-influxdb.sh

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
#!/bin/bash
2+
set -e
3+
4+
AUTH_ENABLED="$INFLUXDB_HTTP_AUTH_ENABLED"
5+
6+
if [ -z "$AUTH_ENABLED" ]; then
7+
AUTH_ENABLED="$(grep -iE '^\s*auth-enabled\s*=\s*true' /etc/influxdb/influxdb.conf | grep -io 'true' | cat)"
8+
else
9+
AUTH_ENABLED="$(echo "$INFLUXDB_HTTP_AUTH_ENABLED" | grep -io 'true' | cat)"
10+
fi
11+
12+
INIT_USERS=$([ ! -z "$AUTH_ENABLED" ] && [ ! -z "$INFLUXDB_ADMIN_USER" ] && echo 1 || echo)
13+
14+
# Check if an environment variable for where to put meta is set.
15+
# If so, then use that directory, otherwise use the default.
16+
if [ -z "$INFLUXDB_META_DIR" ]; then
17+
META_DIR="/var/lib/influxdb/meta"
18+
else
19+
META_DIR="$INFLUXDB_META_DIR"
20+
fi
21+
22+
if ( [ ! -z "$INIT_USERS" ] || [ ! -z "$INFLUXDB_DB" ] || [ "$(ls -A /docker-entrypoint-initdb.d 2> /dev/null)" ] ) && [ ! "$(ls -d "$META_DIR" 2>/dev/null)" ]; then
23+
24+
INIT_QUERY=""
25+
CREATE_DB_QUERY="CREATE DATABASE $INFLUXDB_DB"
26+
27+
if [ ! -z "$INIT_USERS" ]; then
28+
29+
if [ -z "$INFLUXDB_ADMIN_PASSWORD" ]; then
30+
INFLUXDB_ADMIN_PASSWORD="$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c32;echo;)"
31+
echo "INFLUXDB_ADMIN_PASSWORD:$INFLUXDB_ADMIN_PASSWORD"
32+
fi
33+
34+
INIT_QUERY="CREATE USER \"$INFLUXDB_ADMIN_USER\" WITH PASSWORD '$INFLUXDB_ADMIN_PASSWORD' WITH ALL PRIVILEGES"
35+
elif [ ! -z "$INFLUXDB_DB" ]; then
36+
INIT_QUERY="$CREATE_DB_QUERY"
37+
else
38+
INIT_QUERY="SHOW DATABASES"
39+
fi
40+
41+
INFLUXDB_INIT_PORT="8086"
42+
43+
INFLUXDB_HTTP_BIND_ADDRESS=127.0.0.1:$INFLUXDB_INIT_PORT INFLUXDB_HTTP_HTTPS_ENABLED=false influxd "$@" &
44+
pid="$!"
45+
46+
INFLUX_CMD="influx -host 127.0.0.1 -port $INFLUXDB_INIT_PORT -execute "
47+
48+
for i in {30..0}; do
49+
if $INFLUX_CMD "$INIT_QUERY" &> /dev/null; then
50+
break
51+
fi
52+
echo 'influxdb init process in progress...'
53+
sleep 1
54+
done
55+
56+
if [ "$i" = 0 ]; then
57+
echo >&2 'influxdb init process failed.'
58+
exit 1
59+
fi
60+
61+
if [ ! -z "$INIT_USERS" ]; then
62+
63+
INFLUX_CMD="influx -host 127.0.0.1 -port $INFLUXDB_INIT_PORT -username ${INFLUXDB_ADMIN_USER} -password ${INFLUXDB_ADMIN_PASSWORD} -execute "
64+
65+
if [ ! -z "$INFLUXDB_DB" ]; then
66+
$INFLUX_CMD "$CREATE_DB_QUERY"
67+
fi
68+
69+
if [ ! -z "$INFLUXDB_USER" ] && [ -z "$INFLUXDB_USER_PASSWORD" ]; then
70+
INFLUXDB_USER_PASSWORD="$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c32;echo;)"
71+
echo "INFLUXDB_USER_PASSWORD:$INFLUXDB_USER_PASSWORD"
72+
fi
73+
74+
if [ ! -z "$INFLUXDB_USER" ]; then
75+
$INFLUX_CMD "CREATE USER \"$INFLUXDB_USER\" WITH PASSWORD '$INFLUXDB_USER_PASSWORD'"
76+
77+
$INFLUX_CMD "REVOKE ALL PRIVILEGES FROM \"$INFLUXDB_USER\""
78+
79+
if [ ! -z "$INFLUXDB_DB" ]; then
80+
$INFLUX_CMD "GRANT ALL ON \"$INFLUXDB_DB\" TO \"$INFLUXDB_USER\""
81+
fi
82+
fi
83+
84+
if [ ! -z "$INFLUXDB_WRITE_USER" ] && [ -z "$INFLUXDB_WRITE_USER_PASSWORD" ]; then
85+
INFLUXDB_WRITE_USER_PASSWORD="$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c32;echo;)"
86+
echo "INFLUXDB_WRITE_USER_PASSWORD:$INFLUXDB_WRITE_USER_PASSWORD"
87+
fi
88+
89+
if [ ! -z "$INFLUXDB_WRITE_USER" ]; then
90+
$INFLUX_CMD "CREATE USER \"$INFLUXDB_WRITE_USER\" WITH PASSWORD '$INFLUXDB_WRITE_USER_PASSWORD'"
91+
$INFLUX_CMD "REVOKE ALL PRIVILEGES FROM \"$INFLUXDB_WRITE_USER\""
92+
93+
if [ ! -z "$INFLUXDB_DB" ]; then
94+
$INFLUX_CMD "GRANT WRITE ON \"$INFLUXDB_DB\" TO \"$INFLUXDB_WRITE_USER\""
95+
fi
96+
fi
97+
98+
if [ ! -z "$INFLUXDB_READ_USER" ] && [ -z "$INFLUXDB_READ_USER_PASSWORD" ]; then
99+
INFLUXDB_READ_USER_PASSWORD="$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c32;echo;)"
100+
echo "INFLUXDB_READ_USER_PASSWORD:$INFLUXDB_READ_USER_PASSWORD"
101+
fi
102+
103+
if [ ! -z "$INFLUXDB_READ_USER" ]; then
104+
$INFLUX_CMD "CREATE USER \"$INFLUXDB_READ_USER\" WITH PASSWORD '$INFLUXDB_READ_USER_PASSWORD'"
105+
$INFLUX_CMD "REVOKE ALL PRIVILEGES FROM \"$INFLUXDB_READ_USER\""
106+
107+
if [ ! -z "$INFLUXDB_DB" ]; then
108+
$INFLUX_CMD "GRANT READ ON \"$INFLUXDB_DB\" TO \"$INFLUXDB_READ_USER\""
109+
fi
110+
fi
111+
112+
fi
113+
114+
for f in /docker-entrypoint-initdb.d/*; do
115+
case "$f" in
116+
*.sh) echo "$0: running $f"; . "$f" ;;
117+
*.iql) echo "$0: running $f"; $INFLUX_CMD "$(cat ""$f"")"; echo ;;
118+
*) echo "$0: ignoring $f" ;;
119+
esac
120+
echo
121+
done
122+
123+
if ! kill -s TERM "$pid" || ! wait "$pid"; then
124+
echo >&2 'influxdb init process failed. (Could not stop influxdb)'
125+
exit 1
126+
fi
127+
128+
fi

influxdb/1.12/data/Dockerfile

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
FROM buildpack-deps:bookworm-curl
2+
3+
ENV INFLUXDB_VERSION=1.12.0-c1.12.0
4+
RUN curl -fsSLO "https://dl.influxdata.com/enterprise/releases/influxdb-data_${INFLUXDB_VERSION}-1_amd64.deb.asc" \
5+
-fssLO "https://dl.influxdata.com/enterprise/releases/influxdb-data_${INFLUXDB_VERSION}-1_amd64.deb" && \
6+
# Verify InfluxDB 1.X Enterprise \
7+
gpg --batch --keyserver hkp://keyserver.ubuntu.com --recv-keys \
8+
# InfluxData Package Signing Key <[email protected]> \
9+
9D539D90D3328DC7D6C8D3B9D8FF8E1F7DF8B07E && \
10+
gpg --batch --verify \
11+
"influxdb-data_${INFLUXDB_VERSION}-1_amd64.deb.asc" \
12+
"influxdb-data_${INFLUXDB_VERSION}-1_amd64.deb" && \
13+
# Install InfluxDB 1.X Enterprise \
14+
export DEBIAN_FRONTEND=noninteractive && \
15+
apt-get update && \
16+
apt-get install --no-install-recommends -y \
17+
"/influxdb-data_${INFLUXDB_VERSION}-1_amd64.deb" && \
18+
# Cleanup \
19+
rm -r "influxdb-data_${INFLUXDB_VERSION}-1_amd64.deb.asc" \
20+
"influxdb-data_${INFLUXDB_VERSION}-1_amd64.deb" \
21+
/var/lib/apt/lists/*
22+
23+
COPY influxdb.conf /etc/influxdb/influxdb.conf
24+
25+
EXPOSE 8086
26+
27+
VOLUME /var/lib/influxdb
28+
29+
COPY entrypoint.sh /entrypoint.sh
30+
COPY init-influxdb.sh /init-influxdb.sh
31+
ENTRYPOINT ["/entrypoint.sh"]
32+
CMD ["influxd"]

influxdb/1.12/data/alpine/Dockerfile

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
FROM alpine:3.21
2+
3+
RUN apk add --no-cache tzdata bash ca-certificates && \
4+
update-ca-certificates
5+
6+
ENV INFLUXDB_VERSION=1.12.0-c1.12.0
7+
RUN apk add --no-cache --virtual .build-deps curl gnupg tar && \
8+
curl -fsSLO "https://dl.influxdata.com/enterprise/releases/influxdb-data-${INFLUXDB_VERSION}_linux_amd64.tar.gz.asc" \
9+
-fssLO "https://dl.influxdata.com/enterprise/releases/influxdb-data-${INFLUXDB_VERSION}_linux_amd64.tar.gz" && \
10+
# Verify InfluxDB 1.X Enterprise \
11+
gpg --batch --keyserver hkp://keyserver.ubuntu.com --recv-keys \
12+
# InfluxData Package Signing Key <[email protected]> \
13+
9D539D90D3328DC7D6C8D3B9D8FF8E1F7DF8B07E && \
14+
gpg --batch --verify \
15+
"influxdb-data-${INFLUXDB_VERSION}_linux_amd64.tar.gz.asc" \
16+
"influxdb-data-${INFLUXDB_VERSION}_linux_amd64.tar.gz" && \
17+
# Install InfluxDB 1.X Enterprise \
18+
tar -xvf "influxdb-data-${INFLUXDB_VERSION}_linux_amd64.tar.gz" \
19+
-C / --strip-components 1 --wildcards \
20+
'influxdb-*/usr/bin/influx' \
21+
'influxdb-*/usr/bin/influx_inspect' \
22+
'influxdb-*/usr/bin/influxd' && \
23+
# Cleanup \
24+
rm "influxdb-data-${INFLUXDB_VERSION}_linux_amd64.tar.gz.asc" \
25+
"influxdb-data-${INFLUXDB_VERSION}_linux_amd64.tar.gz" && \
26+
apk del .build-deps
27+
28+
COPY influxdb.conf /etc/influxdb/influxdb.conf
29+
30+
EXPOSE 8086
31+
32+
VOLUME /var/lib/influxdb
33+
34+
COPY entrypoint.sh /entrypoint.sh
35+
COPY init-influxdb.sh /init-influxdb.sh
36+
ENTRYPOINT ["/entrypoint.sh"]
37+
CMD ["influxd"]
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/bin/bash
2+
set -e
3+
4+
export INFLUXDB_HOSTNAME=${INFLUXDB_HOSTNAME:-$HOSTNAME}
5+
6+
if [ "${1:0:1}" = '-' ]; then
7+
set -- influxd "$@"
8+
fi
9+
10+
if [ "$1" = 'influxd' ]; then
11+
/init-influxdb.sh "${@:2}"
12+
fi
13+
14+
exec "$@"
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[meta]
2+
dir = "/var/lib/influxdb/meta"
3+
4+
[data]
5+
dir = "/var/lib/influxdb/data"
6+
engine = "tsm1"
7+
wal-dir = "/var/lib/influxdb/wal"
8+
9+
[hinted-handoff]
10+
dir = "/var/lib/influxdb/hh"

0 commit comments

Comments
 (0)