Skip to content

Commit f677a3a

Browse files
authored
feat: run Chronograf as non-root (#731)
2 parents 2680007 + fba6d99 commit f677a3a

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

chronograf/1.10/alpine/Dockerfile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
FROM alpine:3.18
22

33
RUN echo 'hosts: files dns' >> /etc/nsswitch.conf
4-
RUN apk add --no-cache ca-certificates && \
4+
RUN apk add --no-cache ca-certificates su-exec && \
55
update-ca-certificates
66

77
ENV CHRONOGRAF_VERSION 1.10.3
@@ -25,7 +25,11 @@ RUN set -ex && \
2525
cp -a /usr/src/chronograf-*/* /usr/bin/ && \
2626
gpgconf --kill all && \
2727
rm -rf *.tar.gz* /usr/src /root/.gnupg && \
28-
apk del .build-deps
28+
apk del .build-deps && \
29+
addgroup -S chronograf && \
30+
adduser -S chronograf -G chronograf && \
31+
mkdir -m 0750 -p /var/lib/chronograf && \
32+
chown chronograf:chronograf /var/lib/chronograf
2933

3034
COPY LICENSE /usr/share/chronograf/LICENSE
3135
COPY agpl-3.0.md /usr/share/chronograf/agpl-3.0.md

chronograf/1.10/alpine/entrypoint.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,8 @@ if [ "$1" = 'chronograf' ]; then
99
export BOLT_PATH=${BOLT_PATH:-/var/lib/chronograf/chronograf-v1.db}
1010
fi
1111

12-
exec "$@"
12+
if [ "$(id -u)" -ne 0 ] || [ "${CHRONOGRAF_AS_ROOT}" = "true" ]; then
13+
exec "$@"
14+
else
15+
exec su-exec chronograf "$@"
16+
fi

chronograf/1.10/entrypoint.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,8 @@ if [ "$1" = 'chronograf' ]; then
99
export BOLT_PATH=${BOLT_PATH:-/var/lib/chronograf/chronograf-v1.db}
1010
fi
1111

12-
exec "$@"
12+
if [ "$(id -u)" -ne 0 ] || [ "${CHRONOGRAF_AS_ROOT}" = "true" ]; then
13+
exec "$@"
14+
else
15+
exec setpriv --reuid chronograf --regid chronograf --init-groups "$@"
16+
fi

0 commit comments

Comments
 (0)