Skip to content

Conversation

@vaibhavsood
Copy link

@vaibhavsood vaibhavsood commented Nov 17, 2017

This is a proposal to create a new official image for https://www.fluentd.org/

Have checked with the community as per here: fluent/fluentd-docker-image#98

Checklist for Review

NOTE: This checklist is intended for the use of the Official Images maintainers both to track the status of your PR and to help inform you and others of where we're at. As such, please leave the "checking" of items to the repository maintainers. If there is a point below for which you would like to provide additional information or note completion, please do so by commenting on the PR. Thanks! (and thanks for staying patient with us ❤️)

@tianon
Copy link
Member

tianon commented Jan 4, 2018

I think tags and aliases here should probably match what are currently on https://hub.docker.com/r/fluent/fluentd/, and should match the upstream-supported versions (versions which will get an actual version bump if there's a problem discovered).

Regarding onbuild variants, see #2076 (so they should be removed, or a very strong justification for their inclusion will need to be provided).

Diff:
diff --git a/_bashbrew-arches b/_bashbrew-arches
index e69de29..0086489 100644
--- a/_bashbrew-arches
+++ b/_bashbrew-arches
@@ -0,0 +1,8 @@
+fluentd:latest @ amd64
+fluentd:v0.12-alpine @ amd64
+fluentd:v0.12-alpine-onbuild @ amd64
+fluentd:v0.12-debian @ amd64
+fluentd:v0.12-debian-onbuild @ amd64
+fluentd:v0.14-alpine-onbuild @ amd64
+fluentd:v0.14-debian @ amd64
+fluentd:v0.14-debian-onbuild @ amd64
diff --git a/_bashbrew-list b/_bashbrew-list
index e69de29..0ceb059 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -0,0 +1,9 @@
+fluentd:latest
+fluentd:v0.12-alpine
+fluentd:v0.12-alpine-onbuild
+fluentd:v0.12-debian
+fluentd:v0.12-debian-onbuild
+fluentd:v0.14-alpine
+fluentd:v0.14-alpine-onbuild
+fluentd:v0.14-debian
+fluentd:v0.14-debian-onbuild
diff --git a/fluentd_latest/Dockerfile b/fluentd_latest/Dockerfile
new file mode 100644
index 0000000..2255ce6
--- /dev/null
+++ b/fluentd_latest/Dockerfile
@@ -0,0 +1,56 @@
+# AUTOMATICALLY GENERATED
+# DO NOT EDIT THIS FILE DIRECTLY, USE /Dockerfile.template.erb
+
+FROM alpine:3.5
+LABEL maintainer "TAGOMORI Satoshi <[email protected]>"
+LABEL Description="Fluentd docker image" Vendor="Fluent Organization" Version="1.1"
+
+ENV DUMB_INIT_VERSION=1.2.0
+
+ENV SU_EXEC_VERSION=0.2
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+# Do not split this into multiple RUN!
+# Docker creates a layer for every RUN-Statement
+# therefore an 'apk delete' has no effect
+RUN apk update \
+ && apk upgrade \
+ && apk add --no-cache \
+        ca-certificates \
+        ruby ruby-irb \
+        su-exec==${SU_EXEC_VERSION}-r0 \
+        dumb-init==${DUMB_INIT_VERSION}-r0 \
+ && apk add --no-cache --virtual .build-deps \
+        build-base \
+        ruby-dev wget gnupg \
+ && update-ca-certificates \
+ && echo 'gem: --no-document' >> /etc/gemrc \
+ && gem install oj -v 2.18.3 \
+ && gem install json -v 2.1.0 \
+ && gem install fluentd -v 0.14.23 \
+ && apk del .build-deps \
+ && rm -rf /var/cache/apk/* \
+ && rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem
+
+# for log storage (maybe shared with host)
+RUN mkdir -p /fluentd/log
+# configuration/plugins path (default: copied from .)
+RUN mkdir -p /fluentd/etc /fluentd/plugins
+
+COPY fluent.conf /fluentd/etc/
+COPY entrypoint.sh /bin/
+RUN chmod +x /bin/entrypoint.sh
+
+
+ENV FLUENTD_OPT=""
+ENV FLUENTD_CONF="fluent.conf"
+
+ENV LD_PRELOAD=""
+ENV DUMB_INIT_SETSID 0
+
+EXPOSE 24224 5140
+
+ENTRYPOINT ["/bin/entrypoint.sh"]
+
+CMD exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins $FLUENTD_OPT
diff --git a/fluentd_latest/entrypoint.sh b/fluentd_latest/entrypoint.sh
new file mode 100644
index 0000000..6515d97
--- /dev/null
+++ b/fluentd_latest/entrypoint.sh
@@ -0,0 +1,18 @@
+#!/usr/bin/dumb-init /bin/sh
+
+uid=${FLUENT_UID:-1000}
+
+# check if a old fluent user exists and delete it
+cat /etc/passwd | grep fluent
+if [ $? -eq 0 ]; then
+    deluser fluent
+fi
+
+# (re)add the fluent user with $FLUENT_UID
+adduser -D -g '' -u ${uid} -h /home/fluent fluent
+
+# chown home and data folder
+chown -R fluent /home/fluent
+chown -R fluent /fluentd
+
+exec su-exec fluent "$@"
diff --git a/fluentd_latest/fluent.conf b/fluentd_latest/fluent.conf
new file mode 100644
index 0000000..24a37b5
--- /dev/null
+++ b/fluentd_latest/fluent.conf
@@ -0,0 +1,33 @@
+<source>
+  @type  forward
+  @id    input1
+  @label @mainstream
+  port  24224
+</source>
+
+<filter **>
+  @type stdout
+</filter>
+
+<label @mainstream>
+  <match docker.**>
+    @type file
+    @id   output_docker1
+    path         /fluentd/log/docker.*.log
+    symlink_path /fluentd/log/docker.log
+    append       true
+    time_slice_format %Y%m%d
+    time_slice_wait   1m
+    time_format       %Y%m%dT%H%M%S%z
+  </match>
+  <match **>
+    @type file
+    @id   output1
+    path         /fluentd/log/data.*.log
+    symlink_path /fluentd/log/data.log
+    append       true
+    time_slice_format %Y%m%d
+    time_slice_wait   10m
+    time_format       %Y%m%dT%H%M%S%z
+  </match>
+</label>
diff --git a/fluentd_v0.12-alpine-onbuild/Dockerfile b/fluentd_v0.12-alpine-onbuild/Dockerfile
new file mode 100644
index 0000000..1f60b5d
--- /dev/null
+++ b/fluentd_v0.12-alpine-onbuild/Dockerfile
@@ -0,0 +1,58 @@
+# AUTOMATICALLY GENERATED
+# DO NOT EDIT THIS FILE DIRECTLY, USE /Dockerfile.template.erb
+
+FROM alpine:3.5
+LABEL maintainer "TAGOMORI Satoshi <[email protected]>"
+LABEL Description="Fluentd docker image" Vendor="Fluent Organization" Version="1.1"
+
+ENV DUMB_INIT_VERSION=1.2.0
+
+ENV SU_EXEC_VERSION=0.2
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+# Do not split this into multiple RUN!
+# Docker creates a layer for every RUN-Statement
+# therefore an 'apk delete' has no effect
+RUN apk update \
+ && apk upgrade \
+ && apk add --no-cache \
+        ca-certificates \
+        ruby ruby-irb \
+        su-exec==${SU_EXEC_VERSION}-r0 \
+        dumb-init==${DUMB_INIT_VERSION}-r0 \
+ && apk add --no-cache --virtual .build-deps \
+        build-base \
+        ruby-dev wget gnupg \
+ && update-ca-certificates \
+ && echo 'gem: --no-document' >> /etc/gemrc \
+ && gem install oj -v 2.18.3 \
+ && gem install json -v 2.1.0 \
+ && gem install fluentd -v 0.12.41 \
+ && apk del .build-deps \
+ && rm -rf /var/cache/apk/* \
+ && rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem
+
+# for log storage (maybe shared with host)
+RUN mkdir -p /fluentd/log
+# configuration/plugins path (default: copied from .)
+RUN mkdir -p /fluentd/etc /fluentd/plugins
+
+COPY fluent.conf /fluentd/etc/
+COPY entrypoint.sh /bin/
+RUN chmod +x /bin/entrypoint.sh
+
+ONBUILD COPY fluent.conf /fluentd/etc/
+ONBUILD COPY plugins /fluentd/plugins/
+
+ENV FLUENTD_OPT=""
+ENV FLUENTD_CONF="fluent.conf"
+
+ENV LD_PRELOAD=""
+ENV DUMB_INIT_SETSID 0
+
+EXPOSE 24224 5140
+
+ENTRYPOINT ["/bin/entrypoint.sh"]
+
+CMD exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins $FLUENTD_OPT
diff --git a/fluentd_v0.12-alpine-onbuild/entrypoint.sh b/fluentd_v0.12-alpine-onbuild/entrypoint.sh
new file mode 100644
index 0000000..6515d97
--- /dev/null
+++ b/fluentd_v0.12-alpine-onbuild/entrypoint.sh
@@ -0,0 +1,18 @@
+#!/usr/bin/dumb-init /bin/sh
+
+uid=${FLUENT_UID:-1000}
+
+# check if a old fluent user exists and delete it
+cat /etc/passwd | grep fluent
+if [ $? -eq 0 ]; then
+    deluser fluent
+fi
+
+# (re)add the fluent user with $FLUENT_UID
+adduser -D -g '' -u ${uid} -h /home/fluent fluent
+
+# chown home and data folder
+chown -R fluent /home/fluent
+chown -R fluent /fluentd
+
+exec su-exec fluent "$@"
diff --git a/fluentd_v0.12-alpine-onbuild/fluent.conf b/fluentd_v0.12-alpine-onbuild/fluent.conf
new file mode 100644
index 0000000..24a37b5
--- /dev/null
+++ b/fluentd_v0.12-alpine-onbuild/fluent.conf
@@ -0,0 +1,33 @@
+<source>
+  @type  forward
+  @id    input1
+  @label @mainstream
+  port  24224
+</source>
+
+<filter **>
+  @type stdout
+</filter>
+
+<label @mainstream>
+  <match docker.**>
+    @type file
+    @id   output_docker1
+    path         /fluentd/log/docker.*.log
+    symlink_path /fluentd/log/docker.log
+    append       true
+    time_slice_format %Y%m%d
+    time_slice_wait   1m
+    time_format       %Y%m%dT%H%M%S%z
+  </match>
+  <match **>
+    @type file
+    @id   output1
+    path         /fluentd/log/data.*.log
+    symlink_path /fluentd/log/data.log
+    append       true
+    time_slice_format %Y%m%d
+    time_slice_wait   10m
+    time_format       %Y%m%dT%H%M%S%z
+  </match>
+</label>
diff --git a/fluentd_v0.12-alpine/Dockerfile b/fluentd_v0.12-alpine/Dockerfile
new file mode 100644
index 0000000..9aecc00
--- /dev/null
+++ b/fluentd_v0.12-alpine/Dockerfile
@@ -0,0 +1,56 @@
+# AUTOMATICALLY GENERATED
+# DO NOT EDIT THIS FILE DIRECTLY, USE /Dockerfile.template.erb
+
+FROM alpine:3.5
+LABEL maintainer "TAGOMORI Satoshi <[email protected]>"
+LABEL Description="Fluentd docker image" Vendor="Fluent Organization" Version="1.1"
+
+ENV DUMB_INIT_VERSION=1.2.0
+
+ENV SU_EXEC_VERSION=0.2
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+# Do not split this into multiple RUN!
+# Docker creates a layer for every RUN-Statement
+# therefore an 'apk delete' has no effect
+RUN apk update \
+ && apk upgrade \
+ && apk add --no-cache \
+        ca-certificates \
+        ruby ruby-irb \
+        su-exec==${SU_EXEC_VERSION}-r0 \
+        dumb-init==${DUMB_INIT_VERSION}-r0 \
+ && apk add --no-cache --virtual .build-deps \
+        build-base \
+        ruby-dev wget gnupg \
+ && update-ca-certificates \
+ && echo 'gem: --no-document' >> /etc/gemrc \
+ && gem install oj -v 2.18.3 \
+ && gem install json -v 2.1.0 \
+ && gem install fluentd -v 0.12.41 \
+ && apk del .build-deps \
+ && rm -rf /var/cache/apk/* \
+ && rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem
+
+# for log storage (maybe shared with host)
+RUN mkdir -p /fluentd/log
+# configuration/plugins path (default: copied from .)
+RUN mkdir -p /fluentd/etc /fluentd/plugins
+
+COPY fluent.conf /fluentd/etc/
+COPY entrypoint.sh /bin/
+RUN chmod +x /bin/entrypoint.sh
+
+
+ENV FLUENTD_OPT=""
+ENV FLUENTD_CONF="fluent.conf"
+
+ENV LD_PRELOAD=""
+ENV DUMB_INIT_SETSID 0
+
+EXPOSE 24224 5140
+
+ENTRYPOINT ["/bin/entrypoint.sh"]
+
+CMD exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins $FLUENTD_OPT
diff --git a/fluentd_v0.12-alpine/entrypoint.sh b/fluentd_v0.12-alpine/entrypoint.sh
new file mode 100644
index 0000000..6515d97
--- /dev/null
+++ b/fluentd_v0.12-alpine/entrypoint.sh
@@ -0,0 +1,18 @@
+#!/usr/bin/dumb-init /bin/sh
+
+uid=${FLUENT_UID:-1000}
+
+# check if a old fluent user exists and delete it
+cat /etc/passwd | grep fluent
+if [ $? -eq 0 ]; then
+    deluser fluent
+fi
+
+# (re)add the fluent user with $FLUENT_UID
+adduser -D -g '' -u ${uid} -h /home/fluent fluent
+
+# chown home and data folder
+chown -R fluent /home/fluent
+chown -R fluent /fluentd
+
+exec su-exec fluent "$@"
diff --git a/fluentd_v0.12-alpine/fluent.conf b/fluentd_v0.12-alpine/fluent.conf
new file mode 100644
index 0000000..24a37b5
--- /dev/null
+++ b/fluentd_v0.12-alpine/fluent.conf
@@ -0,0 +1,33 @@
+<source>
+  @type  forward
+  @id    input1
+  @label @mainstream
+  port  24224
+</source>
+
+<filter **>
+  @type stdout
+</filter>
+
+<label @mainstream>
+  <match docker.**>
+    @type file
+    @id   output_docker1
+    path         /fluentd/log/docker.*.log
+    symlink_path /fluentd/log/docker.log
+    append       true
+    time_slice_format %Y%m%d
+    time_slice_wait   1m
+    time_format       %Y%m%dT%H%M%S%z
+  </match>
+  <match **>
+    @type file
+    @id   output1
+    path         /fluentd/log/data.*.log
+    symlink_path /fluentd/log/data.log
+    append       true
+    time_slice_format %Y%m%d
+    time_slice_wait   10m
+    time_format       %Y%m%dT%H%M%S%z
+  </match>
+</label>
diff --git a/fluentd_v0.12-debian-onbuild/Dockerfile b/fluentd_v0.12-debian-onbuild/Dockerfile
new file mode 100644
index 0000000..31975c8
--- /dev/null
+++ b/fluentd_v0.12-debian-onbuild/Dockerfile
@@ -0,0 +1,76 @@
+# AUTOMATICALLY GENERATED
+# DO NOT EDIT THIS FILE DIRECTLY, USE /Dockerfile.template.erb
+
+FROM debian:stretch-slim
+LABEL maintainer "TAGOMORI Satoshi <[email protected]>"
+LABEL Description="Fluentd docker image" Vendor="Fluent Organization" Version="1.1"
+
+ENV DUMB_INIT_VERSION=1.2.0
+
+ENV GOSU_VERSION=1.10
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+# Do not split this into multiple RUN!
+# Docker creates a layer for every RUN-Statement
+# therefore an 'apt-get purge' has no effect
+RUN apt-get update \
+ && apt-get upgrade -y \
+ && apt-get install -y --no-install-recommends \
+            ca-certificates \
+            ruby \
+ && buildDeps=" \
+      make gcc g++ libc-dev \
+      ruby-dev \
+      wget bzip2 gnupg dirmngr \
+    " \
+ && apt-get install -y --no-install-recommends $buildDeps \
+ && update-ca-certificates \
+ && echo 'gem: --no-document' >> /etc/gemrc \
+ && gem install oj -v 2.18.3 \
+ && gem install json -v 2.1.0 \
+ && gem install fluentd -v 0.12.41 \
+ && dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \
+ && wget -O /usr/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_$dpkgArch \
+ && chmod +x /usr/bin/dumb-init \
+ && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \
+ && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc" \
+ && export GNUPGHOME="$(mktemp -d)" \
+ && gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \
+ && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \
+ && rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc \
+ && chmod +x /usr/local/bin/gosu \
+ && gosu nobody true \
+ && wget -O /tmp/jemalloc-4.4.0.tar.bz2 https://github.com/jemalloc/jemalloc/releases/download/4.4.0/jemalloc-4.4.0.tar.bz2 \
+ && cd /tmp && tar -xjf jemalloc-4.4.0.tar.bz2 && cd jemalloc-4.4.0/ \
+ && ./configure && make \
+ && mv lib/libjemalloc.so.2 /usr/lib \
+ && apt-get purge -y --auto-remove \
+                  -o APT::AutoRemove::RecommendsImportant=false \
+                  $buildDeps \
+ && rm -rf /var/lib/apt/lists/* \
+ && rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem
+
+# for log storage (maybe shared with host)
+RUN mkdir -p /fluentd/log
+# configuration/plugins path (default: copied from .)
+RUN mkdir -p /fluentd/etc /fluentd/plugins
+
+COPY fluent.conf /fluentd/etc/
+COPY entrypoint.sh /bin/
+RUN chmod +x /bin/entrypoint.sh
+
+ONBUILD COPY fluent.conf /fluentd/etc/
+ONBUILD COPY plugins /fluentd/plugins/
+
+ENV FLUENTD_OPT=""
+ENV FLUENTD_CONF="fluent.conf"
+
+ENV LD_PRELOAD="/usr/lib/libjemalloc.so.2"
+ENV DUMB_INIT_SETSID 0
+
+EXPOSE 24224 5140
+
+ENTRYPOINT ["/bin/entrypoint.sh"]
+
+CMD exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins $FLUENTD_OPT
diff --git a/fluentd_v0.12-debian-onbuild/entrypoint.sh b/fluentd_v0.12-debian-onbuild/entrypoint.sh
new file mode 100644
index 0000000..a21b79d
--- /dev/null
+++ b/fluentd_v0.12-debian-onbuild/entrypoint.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/dumb-init /bin/sh
+
+uid=${FLUENT_UID:-1000}
+
+# check if a old fluent user exists and delete it
+cat /etc/passwd | grep fluent
+if [ $? -eq 0 ]; then
+    deluser fluent
+fi
+
+# (re)add the fluent user with $FLUENT_UID
+useradd -u ${uid} -o -c "" -m fluent
+export HOME=/home/fluent
+
+# chown home and data folder
+chown -R fluent /home/fluent
+chown -R fluent /fluentd
+
+exec gosu fluent "$@"
diff --git a/fluentd_v0.12-debian-onbuild/fluent.conf b/fluentd_v0.12-debian-onbuild/fluent.conf
new file mode 100644
index 0000000..24a37b5
--- /dev/null
+++ b/fluentd_v0.12-debian-onbuild/fluent.conf
@@ -0,0 +1,33 @@
+<source>
+  @type  forward
+  @id    input1
+  @label @mainstream
+  port  24224
+</source>
+
+<filter **>
+  @type stdout
+</filter>
+
+<label @mainstream>
+  <match docker.**>
+    @type file
+    @id   output_docker1
+    path         /fluentd/log/docker.*.log
+    symlink_path /fluentd/log/docker.log
+    append       true
+    time_slice_format %Y%m%d
+    time_slice_wait   1m
+    time_format       %Y%m%dT%H%M%S%z
+  </match>
+  <match **>
+    @type file
+    @id   output1
+    path         /fluentd/log/data.*.log
+    symlink_path /fluentd/log/data.log
+    append       true
+    time_slice_format %Y%m%d
+    time_slice_wait   10m
+    time_format       %Y%m%dT%H%M%S%z
+  </match>
+</label>
diff --git a/fluentd_v0.12-debian/Dockerfile b/fluentd_v0.12-debian/Dockerfile
new file mode 100644
index 0000000..0781a65
--- /dev/null
+++ b/fluentd_v0.12-debian/Dockerfile
@@ -0,0 +1,74 @@
+# AUTOMATICALLY GENERATED
+# DO NOT EDIT THIS FILE DIRECTLY, USE /Dockerfile.template.erb
+
+FROM debian:stretch-slim
+LABEL maintainer "TAGOMORI Satoshi <[email protected]>"
+LABEL Description="Fluentd docker image" Vendor="Fluent Organization" Version="1.1"
+
+ENV DUMB_INIT_VERSION=1.2.0
+
+ENV GOSU_VERSION=1.10
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+# Do not split this into multiple RUN!
+# Docker creates a layer for every RUN-Statement
+# therefore an 'apt-get purge' has no effect
+RUN apt-get update \
+ && apt-get upgrade -y \
+ && apt-get install -y --no-install-recommends \
+            ca-certificates \
+            ruby \
+ && buildDeps=" \
+      make gcc g++ libc-dev \
+      ruby-dev \
+      wget bzip2 gnupg dirmngr \
+    " \
+ && apt-get install -y --no-install-recommends $buildDeps \
+ && update-ca-certificates \
+ && echo 'gem: --no-document' >> /etc/gemrc \
+ && gem install oj -v 2.18.3 \
+ && gem install json -v 2.1.0 \
+ && gem install fluentd -v 0.12.41 \
+ && dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \
+ && wget -O /usr/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_$dpkgArch \
+ && chmod +x /usr/bin/dumb-init \
+ && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \
+ && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc" \
+ && export GNUPGHOME="$(mktemp -d)" \
+ && gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \
+ && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \
+ && rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc \
+ && chmod +x /usr/local/bin/gosu \
+ && gosu nobody true \
+ && wget -O /tmp/jemalloc-4.4.0.tar.bz2 https://github.com/jemalloc/jemalloc/releases/download/4.4.0/jemalloc-4.4.0.tar.bz2 \
+ && cd /tmp && tar -xjf jemalloc-4.4.0.tar.bz2 && cd jemalloc-4.4.0/ \
+ && ./configure && make \
+ && mv lib/libjemalloc.so.2 /usr/lib \
+ && apt-get purge -y --auto-remove \
+                  -o APT::AutoRemove::RecommendsImportant=false \
+                  $buildDeps \
+ && rm -rf /var/lib/apt/lists/* \
+ && rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem
+
+# for log storage (maybe shared with host)
+RUN mkdir -p /fluentd/log
+# configuration/plugins path (default: copied from .)
+RUN mkdir -p /fluentd/etc /fluentd/plugins
+
+COPY fluent.conf /fluentd/etc/
+COPY entrypoint.sh /bin/
+RUN chmod +x /bin/entrypoint.sh
+
+
+ENV FLUENTD_OPT=""
+ENV FLUENTD_CONF="fluent.conf"
+
+ENV LD_PRELOAD="/usr/lib/libjemalloc.so.2"
+ENV DUMB_INIT_SETSID 0
+
+EXPOSE 24224 5140
+
+ENTRYPOINT ["/bin/entrypoint.sh"]
+
+CMD exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins $FLUENTD_OPT
diff --git a/fluentd_v0.12-debian/entrypoint.sh b/fluentd_v0.12-debian/entrypoint.sh
new file mode 100644
index 0000000..a21b79d
--- /dev/null
+++ b/fluentd_v0.12-debian/entrypoint.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/dumb-init /bin/sh
+
+uid=${FLUENT_UID:-1000}
+
+# check if a old fluent user exists and delete it
+cat /etc/passwd | grep fluent
+if [ $? -eq 0 ]; then
+    deluser fluent
+fi
+
+# (re)add the fluent user with $FLUENT_UID
+useradd -u ${uid} -o -c "" -m fluent
+export HOME=/home/fluent
+
+# chown home and data folder
+chown -R fluent /home/fluent
+chown -R fluent /fluentd
+
+exec gosu fluent "$@"
diff --git a/fluentd_v0.12-debian/fluent.conf b/fluentd_v0.12-debian/fluent.conf
new file mode 100644
index 0000000..24a37b5
--- /dev/null
+++ b/fluentd_v0.12-debian/fluent.conf
@@ -0,0 +1,33 @@
+<source>
+  @type  forward
+  @id    input1
+  @label @mainstream
+  port  24224
+</source>
+
+<filter **>
+  @type stdout
+</filter>
+
+<label @mainstream>
+  <match docker.**>
+    @type file
+    @id   output_docker1
+    path         /fluentd/log/docker.*.log
+    symlink_path /fluentd/log/docker.log
+    append       true
+    time_slice_format %Y%m%d
+    time_slice_wait   1m
+    time_format       %Y%m%dT%H%M%S%z
+  </match>
+  <match **>
+    @type file
+    @id   output1
+    path         /fluentd/log/data.*.log
+    symlink_path /fluentd/log/data.log
+    append       true
+    time_slice_format %Y%m%d
+    time_slice_wait   10m
+    time_format       %Y%m%dT%H%M%S%z
+  </match>
+</label>
diff --git a/fluentd_v0.14-alpine-onbuild/Dockerfile b/fluentd_v0.14-alpine-onbuild/Dockerfile
new file mode 100644
index 0000000..3953744
--- /dev/null
+++ b/fluentd_v0.14-alpine-onbuild/Dockerfile
@@ -0,0 +1,58 @@
+# AUTOMATICALLY GENERATED
+# DO NOT EDIT THIS FILE DIRECTLY, USE /Dockerfile.template.erb
+
+FROM alpine:3.5
+LABEL maintainer "TAGOMORI Satoshi <[email protected]>"
+LABEL Description="Fluentd docker image" Vendor="Fluent Organization" Version="1.1"
+
+ENV DUMB_INIT_VERSION=1.2.0
+
+ENV SU_EXEC_VERSION=0.2
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+# Do not split this into multiple RUN!
+# Docker creates a layer for every RUN-Statement
+# therefore an 'apk delete' has no effect
+RUN apk update \
+ && apk upgrade \
+ && apk add --no-cache \
+        ca-certificates \
+        ruby ruby-irb \
+        su-exec==${SU_EXEC_VERSION}-r0 \
+        dumb-init==${DUMB_INIT_VERSION}-r0 \
+ && apk add --no-cache --virtual .build-deps \
+        build-base \
+        ruby-dev wget gnupg \
+ && update-ca-certificates \
+ && echo 'gem: --no-document' >> /etc/gemrc \
+ && gem install oj -v 2.18.3 \
+ && gem install json -v 2.1.0 \
+ && gem install fluentd -v 0.14.23 \
+ && apk del .build-deps \
+ && rm -rf /var/cache/apk/* \
+ && rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem
+
+# for log storage (maybe shared with host)
+RUN mkdir -p /fluentd/log
+# configuration/plugins path (default: copied from .)
+RUN mkdir -p /fluentd/etc /fluentd/plugins
+
+COPY fluent.conf /fluentd/etc/
+COPY entrypoint.sh /bin/
+RUN chmod +x /bin/entrypoint.sh
+
+ONBUILD COPY fluent.conf /fluentd/etc/
+ONBUILD COPY plugins /fluentd/plugins/
+
+ENV FLUENTD_OPT=""
+ENV FLUENTD_CONF="fluent.conf"
+
+ENV LD_PRELOAD=""
+ENV DUMB_INIT_SETSID 0
+
+EXPOSE 24224 5140
+
+ENTRYPOINT ["/bin/entrypoint.sh"]
+
+CMD exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins $FLUENTD_OPT
diff --git a/fluentd_v0.14-alpine-onbuild/entrypoint.sh b/fluentd_v0.14-alpine-onbuild/entrypoint.sh
new file mode 100644
index 0000000..6515d97
--- /dev/null
+++ b/fluentd_v0.14-alpine-onbuild/entrypoint.sh
@@ -0,0 +1,18 @@
+#!/usr/bin/dumb-init /bin/sh
+
+uid=${FLUENT_UID:-1000}
+
+# check if a old fluent user exists and delete it
+cat /etc/passwd | grep fluent
+if [ $? -eq 0 ]; then
+    deluser fluent
+fi
+
+# (re)add the fluent user with $FLUENT_UID
+adduser -D -g '' -u ${uid} -h /home/fluent fluent
+
+# chown home and data folder
+chown -R fluent /home/fluent
+chown -R fluent /fluentd
+
+exec su-exec fluent "$@"
diff --git a/fluentd_v0.14-alpine-onbuild/fluent.conf b/fluentd_v0.14-alpine-onbuild/fluent.conf
new file mode 100644
index 0000000..24a37b5
--- /dev/null
+++ b/fluentd_v0.14-alpine-onbuild/fluent.conf
@@ -0,0 +1,33 @@
+<source>
+  @type  forward
+  @id    input1
+  @label @mainstream
+  port  24224
+</source>
+
+<filter **>
+  @type stdout
+</filter>
+
+<label @mainstream>
+  <match docker.**>
+    @type file
+    @id   output_docker1
+    path         /fluentd/log/docker.*.log
+    symlink_path /fluentd/log/docker.log
+    append       true
+    time_slice_format %Y%m%d
+    time_slice_wait   1m
+    time_format       %Y%m%dT%H%M%S%z
+  </match>
+  <match **>
+    @type file
+    @id   output1
+    path         /fluentd/log/data.*.log
+    symlink_path /fluentd/log/data.log
+    append       true
+    time_slice_format %Y%m%d
+    time_slice_wait   10m
+    time_format       %Y%m%dT%H%M%S%z
+  </match>
+</label>
diff --git a/fluentd_v0.14-debian-onbuild/Dockerfile b/fluentd_v0.14-debian-onbuild/Dockerfile
new file mode 100644
index 0000000..c41c451
--- /dev/null
+++ b/fluentd_v0.14-debian-onbuild/Dockerfile
@@ -0,0 +1,76 @@
+# AUTOMATICALLY GENERATED
+# DO NOT EDIT THIS FILE DIRECTLY, USE /Dockerfile.template.erb
+
+FROM debian:stretch-slim
+LABEL maintainer "TAGOMORI Satoshi <[email protected]>"
+LABEL Description="Fluentd docker image" Vendor="Fluent Organization" Version="1.1"
+
+ENV DUMB_INIT_VERSION=1.2.0
+
+ENV GOSU_VERSION=1.10
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+# Do not split this into multiple RUN!
+# Docker creates a layer for every RUN-Statement
+# therefore an 'apt-get purge' has no effect
+RUN apt-get update \
+ && apt-get upgrade -y \
+ && apt-get install -y --no-install-recommends \
+            ca-certificates \
+            ruby \
+ && buildDeps=" \
+      make gcc g++ libc-dev \
+      ruby-dev \
+      wget bzip2 gnupg dirmngr \
+    " \
+ && apt-get install -y --no-install-recommends $buildDeps \
+ && update-ca-certificates \
+ && echo 'gem: --no-document' >> /etc/gemrc \
+ && gem install oj -v 2.18.3 \
+ && gem install json -v 2.1.0 \
+ && gem install fluentd -v 0.14.23 \
+ && dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \
+ && wget -O /usr/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_$dpkgArch \
+ && chmod +x /usr/bin/dumb-init \
+ && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \
+ && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc" \
+ && export GNUPGHOME="$(mktemp -d)" \
+ && gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \
+ && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \
+ && rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc \
+ && chmod +x /usr/local/bin/gosu \
+ && gosu nobody true \
+ && wget -O /tmp/jemalloc-4.4.0.tar.bz2 https://github.com/jemalloc/jemalloc/releases/download/4.4.0/jemalloc-4.4.0.tar.bz2 \
+ && cd /tmp && tar -xjf jemalloc-4.4.0.tar.bz2 && cd jemalloc-4.4.0/ \
+ && ./configure && make \
+ && mv lib/libjemalloc.so.2 /usr/lib \
+ && apt-get purge -y --auto-remove \
+                  -o APT::AutoRemove::RecommendsImportant=false \
+                  $buildDeps \
+ && rm -rf /var/lib/apt/lists/* \
+ && rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem
+
+# for log storage (maybe shared with host)
+RUN mkdir -p /fluentd/log
+# configuration/plugins path (default: copied from .)
+RUN mkdir -p /fluentd/etc /fluentd/plugins
+
+COPY fluent.conf /fluentd/etc/
+COPY entrypoint.sh /bin/
+RUN chmod +x /bin/entrypoint.sh
+
+ONBUILD COPY fluent.conf /fluentd/etc/
+ONBUILD COPY plugins /fluentd/plugins/
+
+ENV FLUENTD_OPT=""
+ENV FLUENTD_CONF="fluent.conf"
+
+ENV LD_PRELOAD="/usr/lib/libjemalloc.so.2"
+ENV DUMB_INIT_SETSID 0
+
+EXPOSE 24224 5140
+
+ENTRYPOINT ["/bin/entrypoint.sh"]
+
+CMD exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins $FLUENTD_OPT
diff --git a/fluentd_v0.14-debian-onbuild/entrypoint.sh b/fluentd_v0.14-debian-onbuild/entrypoint.sh
new file mode 100644
index 0000000..a21b79d
--- /dev/null
+++ b/fluentd_v0.14-debian-onbuild/entrypoint.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/dumb-init /bin/sh
+
+uid=${FLUENT_UID:-1000}
+
+# check if a old fluent user exists and delete it
+cat /etc/passwd | grep fluent
+if [ $? -eq 0 ]; then
+    deluser fluent
+fi
+
+# (re)add the fluent user with $FLUENT_UID
+useradd -u ${uid} -o -c "" -m fluent
+export HOME=/home/fluent
+
+# chown home and data folder
+chown -R fluent /home/fluent
+chown -R fluent /fluentd
+
+exec gosu fluent "$@"
diff --git a/fluentd_v0.14-debian-onbuild/fluent.conf b/fluentd_v0.14-debian-onbuild/fluent.conf
new file mode 100644
index 0000000..24a37b5
--- /dev/null
+++ b/fluentd_v0.14-debian-onbuild/fluent.conf
@@ -0,0 +1,33 @@
+<source>
+  @type  forward
+  @id    input1
+  @label @mainstream
+  port  24224
+</source>
+
+<filter **>
+  @type stdout
+</filter>
+
+<label @mainstream>
+  <match docker.**>
+    @type file
+    @id   output_docker1
+    path         /fluentd/log/docker.*.log
+    symlink_path /fluentd/log/docker.log
+    append       true
+    time_slice_format %Y%m%d
+    time_slice_wait   1m
+    time_format       %Y%m%dT%H%M%S%z
+  </match>
+  <match **>
+    @type file
+    @id   output1
+    path         /fluentd/log/data.*.log
+    symlink_path /fluentd/log/data.log
+    append       true
+    time_slice_format %Y%m%d
+    time_slice_wait   10m
+    time_format       %Y%m%dT%H%M%S%z
+  </match>
+</label>
diff --git a/fluentd_v0.14-debian/Dockerfile b/fluentd_v0.14-debian/Dockerfile
new file mode 100644
index 0000000..e00e84f
--- /dev/null
+++ b/fluentd_v0.14-debian/Dockerfile
@@ -0,0 +1,74 @@
+# AUTOMATICALLY GENERATED
+# DO NOT EDIT THIS FILE DIRECTLY, USE /Dockerfile.template.erb
+
+FROM debian:stretch-slim
+LABEL maintainer "TAGOMORI Satoshi <[email protected]>"
+LABEL Description="Fluentd docker image" Vendor="Fluent Organization" Version="1.1"
+
+ENV DUMB_INIT_VERSION=1.2.0
+
+ENV GOSU_VERSION=1.10
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+# Do not split this into multiple RUN!
+# Docker creates a layer for every RUN-Statement
+# therefore an 'apt-get purge' has no effect
+RUN apt-get update \
+ && apt-get upgrade -y \
+ && apt-get install -y --no-install-recommends \
+            ca-certificates \
+            ruby \
+ && buildDeps=" \
+      make gcc g++ libc-dev \
+      ruby-dev \
+      wget bzip2 gnupg dirmngr \
+    " \
+ && apt-get install -y --no-install-recommends $buildDeps \
+ && update-ca-certificates \
+ && echo 'gem: --no-document' >> /etc/gemrc \
+ && gem install oj -v 2.18.3 \
+ && gem install json -v 2.1.0 \
+ && gem install fluentd -v 0.14.23 \
+ && dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \
+ && wget -O /usr/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_$dpkgArch \
+ && chmod +x /usr/bin/dumb-init \
+ && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \
+ && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc" \
+ && export GNUPGHOME="$(mktemp -d)" \
+ && gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \
+ && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \
+ && rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc \
+ && chmod +x /usr/local/bin/gosu \
+ && gosu nobody true \
+ && wget -O /tmp/jemalloc-4.4.0.tar.bz2 https://github.com/jemalloc/jemalloc/releases/download/4.4.0/jemalloc-4.4.0.tar.bz2 \
+ && cd /tmp && tar -xjf jemalloc-4.4.0.tar.bz2 && cd jemalloc-4.4.0/ \
+ && ./configure && make \
+ && mv lib/libjemalloc.so.2 /usr/lib \
+ && apt-get purge -y --auto-remove \
+                  -o APT::AutoRemove::RecommendsImportant=false \
+                  $buildDeps \
+ && rm -rf /var/lib/apt/lists/* \
+ && rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem
+
+# for log storage (maybe shared with host)
+RUN mkdir -p /fluentd/log
+# configuration/plugins path (default: copied from .)
+RUN mkdir -p /fluentd/etc /fluentd/plugins
+
+COPY fluent.conf /fluentd/etc/
+COPY entrypoint.sh /bin/
+RUN chmod +x /bin/entrypoint.sh
+
+
+ENV FLUENTD_OPT=""
+ENV FLUENTD_CONF="fluent.conf"
+
+ENV LD_PRELOAD="/usr/lib/libjemalloc.so.2"
+ENV DUMB_INIT_SETSID 0
+
+EXPOSE 24224 5140
+
+ENTRYPOINT ["/bin/entrypoint.sh"]
+
+CMD exec fluentd -c /fluentd/etc/${FLUENTD_CONF} -p /fluentd/plugins $FLUENTD_OPT
diff --git a/fluentd_v0.14-debian/entrypoint.sh b/fluentd_v0.14-debian/entrypoint.sh
new file mode 100644
index 0000000..a21b79d
--- /dev/null
+++ b/fluentd_v0.14-debian/entrypoint.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/dumb-init /bin/sh
+
+uid=${FLUENT_UID:-1000}
+
+# check if a old fluent user exists and delete it
+cat /etc/passwd | grep fluent
+if [ $? -eq 0 ]; then
+    deluser fluent
+fi
+
+# (re)add the fluent user with $FLUENT_UID
+useradd -u ${uid} -o -c "" -m fluent
+export HOME=/home/fluent
+
+# chown home and data folder
+chown -R fluent /home/fluent
+chown -R fluent /fluentd
+
+exec gosu fluent "$@"
diff --git a/fluentd_v0.14-debian/fluent.conf b/fluentd_v0.14-debian/fluent.conf
new file mode 100644
index 0000000..24a37b5
--- /dev/null
+++ b/fluentd_v0.14-debian/fluent.conf
@@ -0,0 +1,33 @@
+<source>
+  @type  forward
+  @id    input1
+  @label @mainstream
+  port  24224
+</source>
+
+<filter **>
+  @type stdout
+</filter>
+
+<label @mainstream>
+  <match docker.**>
+    @type file
+    @id   output_docker1
+    path         /fluentd/log/docker.*.log
+    symlink_path /fluentd/log/docker.log
+    append       true
+    time_slice_format %Y%m%d
+    time_slice_wait   1m
+    time_format       %Y%m%dT%H%M%S%z
+  </match>
+  <match **>
+    @type file
+    @id   output1
+    path         /fluentd/log/data.*.log
+    symlink_path /fluentd/log/data.log
+    append       true
+    time_slice_format %Y%m%d
+    time_slice_wait   10m
+    time_format       %Y%m%dT%H%M%S%z
+  </match>
+</label>

Regarding the Dockerization itself:

I don't understand the purpose of including DEBIAN_FRONTEND=noninteractive (even more especially in the Alpine-based images) -- it doesn't hurt, but I also have yet to see a strong case for where it's required for proper package installation.

Doing apk upgrade (and/or apt-get [ dist- ] upgrade) in a Dockerfile is a generally bad idea (see https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#apt-get).

Why run update-ca-certificates manually? In my experience, the package installation (both in Alpine and in Debian) usually triggers this automatically, and is sufficient.

Using the shell form of CMD is definitely discouraged -- why do FLUENT_CONF and FLUENT_OPTS need to be environment variables? For most official images, that sort of behavior is provided by having something like CMD ["some-application"] (with an entrypoint which will auto-inject some-application in front of a $1 that starts with a hyphen), and then having users do docker run some-application-image --extra --application --flags or docker run some-application-image --config /path/to/config/file.conf).

Having the entrypoint itself modify /etc/passwd (via deluser and adduser) is extremely fragile -- it seems like a better plan to adjust the container image to support running as an arbitrary UID directly. See docker-library/rabbitmq#60, docker-library/cassandra#48, docker-library/mongo#81, redis/docker-library-redis#48, docker-library/mysql#161, MariaDB/mariadb-docker#59, docker-library/percona#21, docker-library/ghost#54, docker-library/postgres#253 for several examples of concrete implementations of this pattern.

Is it necessary or useful to provide a default configuration file? For example, the haproxy image does not include one, since every user of the image is going to have custom requirements, and the included default appears to simply be an example which isn't actually useful out-of-the-box for most users, but I may have misunderstood what it's doing.

@vaibhavsood
Copy link
Author

vaibhavsood commented Jan 9, 2018

Hi @tianon, thanks for the response!!

I think tags and aliases here should probably match what are currently on https://hub.docker.com/r/fluent/fluentd/, and should match the upstream-supported versions (versions which will get an actual version bump if there's a problem discovered).
Regarding onbuild variants, see #2076 (so they should be removed, or a very strong justification for their inclusion will need to be provided).

I have updated the commit to reflect both these concerns (have for now removed the onbuild variants)

For the dockerfile review comments, have requested upstream to comment: fluent/fluentd-docker-image#98 (comment)

@yosifkit yosifkit mentioned this pull request Mar 15, 2018
@docker-library-bot
Copy link
Member

Hello! ✨

Thanks for your interest in contributing to the official images program. 💭

As you may have noticed, we've usually got a pretty decently sized queue of new images (not to mention image updates and maintenance of images under @docker-library which are maintained by the core official images team). As such, it may be some time before we get to reviewing this image (image updates get priority both because users expect them and because reviewing new images is a more involved process than reviewing updates), so we apologize in advance! Please be patient with us (and avoid poking us about your image via other communication means -- rest assured, we've seen your PR and it's in the queue). ❤️

We do try to proactively add and update the "new image checklist" on each PR, so if you haven't looked at it yet, that's a good use of time while you wait. ☔

Thanks! 💖 💙 💚 ❤️

@tianon
Copy link
Member

tianon commented Jul 18, 2018

Thanks @docker-library-bot ❤️

@vaibhavsood do you think this is still something upstream is (and you are) interested in pushing forward? It seemed that they had some initial interest on that thread you opened, but it appears they've likely been too busy with other things to give it more thought.

@vaibhavsood
Copy link
Author

Hi @tianon, yes i will be interested in taking this forward. i will post another update on the fluentd thread, will need inputs from their end to work on your review comments for the dockerfile

lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 16, 2018
As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 16, 2018
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 16, 2018
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 16, 2018
As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 16, 2018
If permissions problems exist, they should be overcome properly.

For examples see:

  LINK: docker-library/rabbitmq#60
  LINK: docker-library/cassandra#48
  LINK: docker-library/mongo#81
  LINK: redis/docker-library-redis#48
  LINK: docker-library/mysql#161
  LINK: MariaDB/mariadb-docker#59
  LINK: docker-library/percona#21
  LINK: docker-library/ghost#54
  LINK: docker-library/postgres#253

As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 16, 2018
This allows us to remove the `FLUENTD_CONF` and `FLUENTD_OPT` envs.

As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 19, 2018
This allows us to remove the `FLUENTD_CONF` and `FLUENTD_OPT` envs.

As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 19, 2018
The FluentD package does not provide a 'fluent' user.  Until now
hacks exist in the entrypoint.sh which provide one manually at
run-time.  Instead of doing that, let's create the user when the
container is created.

This issue was highlighted by @tianon

  LINK: docker-library/official-images#3724 (comment)

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 19, 2018
If permissions problems exist, they should be overcome properly.

For examples see:

  LINK: docker-library/rabbitmq#60
  LINK: docker-library/cassandra#48
  LINK: docker-library/mongo#81
  LINK: redis/docker-library-redis#48
  LINK: docker-library/mysql#161
  LINK: MariaDB/mariadb-docker#59
  LINK: docker-library/percona#21
  LINK: docker-library/ghost#54
  LINK: docker-library/postgres#253

As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 19, 2018
This allows us to remove the `FLUENTD_CONF` and `FLUENTD_OPT` envs.

As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 23, 2018
As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 23, 2018
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 23, 2018
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 23, 2018
As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 23, 2018
The FluentD package does not provide a 'fluent' user.  Until now
hacks exist in the entrypoint.sh which provide one manually at
run-time.  Instead of doing that, let's create the user when the
container is created.

This issue was highlighted by @tianon

  LINK: docker-library/official-images#3724 (comment)

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 23, 2018
If permissions problems exist, they should be overcome properly.

For examples see:

  LINK: docker-library/rabbitmq#60
  LINK: docker-library/cassandra#48
  LINK: docker-library/mongo#81
  LINK: redis/docker-library-redis#48
  LINK: docker-library/mysql#161
  LINK: MariaDB/mariadb-docker#59
  LINK: docker-library/percona#21
  LINK: docker-library/ghost#54
  LINK: docker-library/postgres#253

As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 23, 2018
This allows us to remove the `FLUENTD_CONF` and `FLUENTD_OPT` envs.

As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 30, 2018
This allows us to remove the `FLUENTD_CONF` and `FLUENTD_OPT` envs.

As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 30, 2018
As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 30, 2018
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 30, 2018
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 30, 2018
As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 30, 2018
The FluentD package does not provide a 'fluent' user.  Until now
hacks exist in the entrypoint.sh which provide one manually at
run-time.  Instead of doing that, let's create the user when the
container is created.

This issue was highlighted by @tianon

  LINK: docker-library/official-images#3724 (comment)

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 30, 2018
If permissions problems exist, they should be overcome properly.

For examples see:

  LINK: docker-library/rabbitmq#60
  LINK: docker-library/cassandra#48
  LINK: docker-library/mongo#81
  LINK: redis/docker-library-redis#48
  LINK: docker-library/mysql#161
  LINK: MariaDB/mariadb-docker#59
  LINK: docker-library/percona#21
  LINK: docker-library/ghost#54
  LINK: docker-library/postgres#253

As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Nov 30, 2018
This allows us to remove the `FLUENTD_CONF` and `FLUENTD_OPT` envs.

As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Dec 19, 2018
As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Dec 19, 2018
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Dec 19, 2018
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Dec 19, 2018
As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Dec 19, 2018
The FluentD package does not provide a 'fluent' user.  Until now
hacks exist in the entrypoint.sh which provide one manually at
run-time.  Instead of doing that, let's create the user when the
container is created.

This issue was highlighted by @tianon

  LINK: docker-library/official-images#3724 (comment)

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Dec 19, 2018
If permissions problems exist, they should be overcome properly.

For examples see:

  LINK: docker-library/rabbitmq#60
  LINK: docker-library/cassandra#48
  LINK: docker-library/mongo#81
  LINK: redis/docker-library-redis#48
  LINK: docker-library/mysql#161
  LINK: MariaDB/mariadb-docker#59
  LINK: docker-library/percona#21
  LINK: docker-library/ghost#54
  LINK: docker-library/postgres#253

As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
lag-linaro pushed a commit to lag-linaro/fluentd-docker-image that referenced this pull request Dec 19, 2018
This allows us to remove the `FLUENTD_CONF` and `FLUENTD_OPT` envs.

As suggested by @tianon

  LINK: docker-library/official-images#3724 (comment)

This is part of an effort to make FluentD part of Docker's Official Images.

Signed-off-by: Lee Jones <[email protected]>
@repeatedly
Copy link
Contributor

I just merged the changes for official images: fluent/fluentd-docker-image#152
How to proceed the process?

@mmarmm
Copy link

mmarmm commented Dec 21, 2018

@yosifkit What else do we need to do or is this in your court to review and push? Thank you.

@yosifkit
Copy link
Member

It looks like we just need an updated library/fluentd file like the one in this PR with the new git commit hashes and some architectures. From the readme in fluent/fluentd-docker-image, it looks like just 1.3.2 and 0.12.43 variations.

As far as the Dockerfiles go, I think if you want the onbuild tags, you'll need to update the FROM to be without the fluent/. And then you may want to update or remove the ARG VERSION=1.1, since our builds don't support supplying --build-arg (1.1 seems out of date for the 1.3 image).

I think something along these lines?

Maintainers: Masahiro Nakagawa <[email protected]> (@repeatedly),
             Another Maintainer <[email protected]> (@github-alias)
GitRepo: https://github.com/fluent/fluentd-docker-image.git

# I don't see anything in the Dockerfile that would prevent it from running on all arches
# that its base image supports, so this set of arches would be the max for alpine:3.8
Tags: v1.3.2-1.0, v1.3-1, edge, latest
Architectures: amd64, arm32v6, arm64v8, i386, ppc64le, s390x
GitCommit: xxxxx
Directory: v1.3/alpine

# and a section for each unique Tag set, like debian
Tag: v1.3.2-debian-1.0, v1.3-debian-1, edge-debian, debian
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: xxxxx
Directory: v1.3/debian

These Architectures lists are just the maximum set, you are free to do less than that if you don't want to support running on a specific architecture (if you need test arm64v8 servers, the https://www.worksonarm.com group is great)

Just a note that most images leave out the v on their tags (just traefik has them and they offer both types of tags), but that is entirely up to you. The only hard rule is to not have xyz-latest or latest-xyz, just latest and/or xyz.


Oh, a PR to the docs to control what appears on the Docker Hub description.

Let me know if you have any questions.

@lag-linaro
Copy link
Contributor

Sounds good. Thanks for the thorough guidance (as usual @yosifkit).

@repeatedly I assume you will take this from here?

@repeatedly
Copy link
Contributor

@yosifkit So we need new PR with new docker tags which include your suggested changes, right?

@yosifkit
Copy link
Member

Yes, that should work. Let us know if you have any other questions.

@repeatedly repeatedly mentioned this pull request Jan 16, 2019
9 tasks
@repeatedly
Copy link
Contributor

Send new PR: #5303

@yosifkit
Copy link
Member

Replaced by #5303

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants