diff --git a/influxdb/1.8/Dockerfile b/influxdb/1.8/Dockerfile index 5df0d6d38..f85afb3d8 100644 --- a/influxdb/1.8/Dockerfile +++ b/influxdb/1.8/Dockerfile @@ -2,7 +2,7 @@ FROM buildpack-deps:stretch-curl RUN set -ex && \ for key in \ - 05CE15085FC09D18E99EFB22684A14CF2582E0C5 ; \ + 05CE15085FC09D18E99EFB22684A14CF2582E0C5 B42F6819007F00F88E364FD4036A9C25BF357DD4 ; \ do \ gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ gpg --keyserver pgp.mit.edu --recv-keys "$key" || \ @@ -10,6 +10,7 @@ RUN set -ex && \ done ENV INFLUXDB_VERSION 1.8.0 +ENV GOSU_VERSION 1.12 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" && \ case "${dpkgArch##*-}" in \ amd64) ARCH='amd64';; \ @@ -22,7 +23,14 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" && \ wget --no-verbose https://dl.influxdata.com/influxdb/releases/influxdb_${INFLUXDB_VERSION}_${ARCH}.deb && \ gpg --batch --verify influxdb_${INFLUXDB_VERSION}_${ARCH}.deb.asc influxdb_${INFLUXDB_VERSION}_${ARCH}.deb && \ dpkg -i influxdb_${INFLUXDB_VERSION}_${ARCH}.deb && \ - rm -f influxdb_${INFLUXDB_VERSION}_${ARCH}.deb* + rm -f influxdb_${INFLUXDB_VERSION}_${ARCH}.deb* && \ + wget --no-verbose https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-${ARCH}.asc && \ + wget --no-verbose https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-${ARCH} && \ + gpg --batch --verify gosu-${ARCH}.asc gosu-${ARCH} && \ + rm -f gosu-${ARCH}.asc && \ + mv gosu-${ARCH} /usr/local/bin && \ + chmod +x /usr/local/bin/gosu-${ARCH} && \ + ln -s /usr/local/bin/gosu-${ARCH} /usr/local/bin/gosu COPY influxdb.conf /etc/influxdb/influxdb.conf EXPOSE 8086 diff --git a/influxdb/1.8/entrypoint.sh b/influxdb/1.8/entrypoint.sh index 26e6bd7ad..00422615e 100755 --- a/influxdb/1.8/entrypoint.sh +++ b/influxdb/1.8/entrypoint.sh @@ -1,12 +1,42 @@ #!/bin/bash set -e +USER_ID=${INFLUXDB_RUNAS_USER_ID:-0} +GROUP_ID=${INFLUXDB_RUNAS_GROUP_ID:-0} + +if [ $USER_ID != 0 ]; then + if [ $USER_ID != $(id -u influxdb) ]; then + echo "Changing uid of influxdb to $USER_ID" + usermod -u $USER_ID influxdb + fi +fi + +if [ $GROUP_ID != 0 ]; then + if [ $GROUP_ID != $(id -g influxdb) ]; then + echo "Changing gid of influxdb to $GROUP_ID" + groupmod -o -g $GROUP_ID influxdb + fi +fi + +if [ $USER_ID != 0 ]; then + echo "Changing ownership of /var/lib/influxdb to $USER_ID:$GROUP_ID" + chown -R ${USER_ID}:${GROUP_ID} /var/lib/influxdb +fi + +if [ $USER_ID != 0 ]; then + GOSU_CMD="gosu influxdb" +else + GOSU_CMD= +fi + +echo "Starting influxdb as uid $USER_ID and gid $GROUP_ID" + if [ "${1:0:1}" = '-' ]; then set -- influxd "$@" fi if [ "$1" = 'influxd' ]; then - /init-influxdb.sh "${@:2}" + $GOSU_CMD /init-influxdb.sh "${@:2}" fi -exec "$@" +exec $GOSU_CMD "$@"