Skip to content

Commit

Permalink
Merge pull request #381 from kenhys/v1-17
Browse files Browse the repository at this point in the history
 Add v1.17.0 images
  • Loading branch information
kenhys committed May 13, 2024
2 parents 6f34706 + 9af6cc3 commit 771fee0
Show file tree
Hide file tree
Showing 31 changed files with 917 additions and 33 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ jobs:
fail-fast: false
matrix:
include:
- dockerfile: v1.16/alpine
- dockerfile: v1.16/debian
- dockerfile: v1.17/alpine
- dockerfile: v1.17/debian
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ jobs:
fail-fast: false
matrix:
include:
- version: v1.16
- version: v1.17
os-version: 2019
- version: v1.16
- version: v1.17
os-version: 2022
runs-on: windows-${{ matrix.os-version }}
steps:
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile.template.erb
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@ ENV TINI_VERSION=0.18.0
RUN powershell -Command "Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"

# NOTE: For avoiding stalling with docker build on windows, we must use latest version of msys2.
RUN choco install -y ruby --version 3.1.3.1 --params "'/InstallDir:C:\ruby31'" \
&& choco install -y msys2 --version 20240113.0.0 --params "'/NoPath /NoUpdate /InstallDir:C:\ruby31\msys64'"
RUN choco install -y ruby --version 3.2.4.1 --params "'/InstallDir:C:\ruby32'" \
&& choco install -y msys2 --version 20240507.0.0 --params "'/NoPath /NoUpdate /InstallDir:C:\ruby32\msys64'"
RUN refreshenv \
&& ridk install 3 \
&& echo gem: --no-document >> C:\ProgramData\gemrc \
Expand Down
12 changes: 6 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,21 @@

IMAGE_NAME := fluent/fluentd
X86_IMAGES := \
v1.16/alpine:v1.16.5-1.0,v1.16-2,edge \
v1.16/debian:v1.16.5-debian-amd64-1.0,v1.16-debian-amd64-2,edge-debian-amd64
v1.17/alpine:v1.17.0-1.0,v1.17-1,edge \
v1.17/debian:v1.17.0-debian-amd64-1.0,v1.17-debian-amd64-1,edge-debian-amd64
# <Dockerfile>:<version>,<tag1>,<tag2>,...

# Define images for running on ARM platforms
ARM_IMAGES := \
v1.16/armhf/debian:v1.16.5-debian-armhf-1.0,v1.16-debian-armhf-2,edge-debian-armhf \
v1.17/armhf/debian:v1.17.0-debian-armhf-1.0,v1.17-debian-armhf-1,edge-debian-armhf \

# Define images for running on ARM64 platforms
ARM64_IMAGES := \
v1.16/arm64/debian:v1.16.5-debian-arm64-1.0,v1.16-debian-arm64-2,edge-debian-arm64 \
v1.17/arm64/debian:v1.17.0-debian-arm64-1.0,v1.16-debian-arm64-1,edge-debian-arm64 \

WINDOWS_IMAGES := \
v1.16/windows-ltsc2019:v1.16.5-windows-ltsc2019-1.0,v1.16-windows-ltsc2019-1 \
v1.16/windows-ltsc2022:v1.16.5-windows-ltsc2022-1.0,v1.16-windows-ltsc2022-1
v1.17/windows-ltsc2019:v1.17.0-windows-ltsc2019-1.0,v1.17-windows-ltsc2019-1 \
v1.17/windows-ltsc2022:v1.17.0-windows-ltsc2022-1.0,v1.17-windows-ltsc2022-1

LINUX_IMAGES := $(X86_IMAGES) $(ARM_IMAGES) $(ARM64_IMAGES)
ALL_IMAGES := $(LINUX_IMAGES) $(WINDOWS_IMAGES)
Expand Down
42 changes: 21 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,20 @@ These tags have image version postfix. This updates many places so we need feedb

Current images use fluentd v1 series.

- `v1.16.5-1.0`, `v1.16-2`, `edge`
[(v1.16/alpine/Dockerfile)][fluentd-1-alpine]
- `v1.16.5-debian-1.0`, `v1.16-debian-2`, `edge-debian`
- `v1.17.0-1.0`, `v1.17-1`, `edge`
[(v1.17/alpine/Dockerfile)][fluentd-1-alpine]
- `v1.17.0-debian-1.0`, `v1.17-debian-1`, `edge-debian`
(multiarch image for arm64(AArch64) and amd64(x86_64))
- `v1.16.5-debian-amd64-1.0`, `v1.16-debian-amd64-2`, `edge-debian-amd64`
[(v1.16/debian/Dockerfile)][fluentd-1-debian]
- `v1.16.5-debian-arm64-1.0`, `v1.16-debian-arm64-2`, `edge-debian-arm64`
[(v1.16/arm64/debian/Dockerfile)][fluentd-1-debian-arm64]
- `v1.16.5-debian-armhf-1.0`, `v1.16-debian-armhf-2`, `edge-debian-armhf`
[(v1.16/armhf/debian/Dockerfile)][fluentd-1-debian-armhf]
- `v1.16.5-windows-ltsc2019-1.0`, `v1.16-windows-ltsc2019-1`
[(v1.16/windows-ltsc2019/Dockerfile)][fluentd-1-ltsc2019-windows]
- `v1.16.5-windows-ltsc2022-1.0`, `v1.16-windows-ltsc2022-1`
[(v1.16/windows-ltsc2022/Dockerfile)][fluentd-1-ltsc2022-windows]
- `v1.17.0-debian-amd64-1.0`, `v1.17-debian-amd64-1`, `edge-debian-amd64`
[(v1.17/debian/Dockerfile)][fluentd-1-debian]
- `v1.17.0-debian-arm64-1.0`, `v1.17-debian-arm64-1`, `edge-debian-arm64`
[(v1.17/arm64/debian/Dockerfile)][fluentd-1-debian-arm64]
- `v1.17.0-debian-armhf-1.0`, `v1.17-debian-armhf-1`, `edge-debian-armhf`
[(v1.17/armhf/debian/Dockerfile)][fluentd-1-debian-armhf]
- `v1.17.0-windows-ltsc2019-1.0`, `v1.17-windows-ltsc2019-1`
[(v1.17/windows-ltsc2019/Dockerfile)][fluentd-1-ltsc2019-windows]
- `v1.17.0-windows-ltsc2022-1.0`, `v1.17-windows-ltsc2022-1`
[(v1.17/windows-ltsc2022/Dockerfile)][fluentd-1-ltsc2022-windows]

### Old v1.4 images

Expand Down Expand Up @@ -223,7 +223,7 @@ To add plugins, edit `Dockerfile` as following:
#### Alpine version

```Dockerfile
FROM fluent/fluentd:v1.16-1
FROM fluent/fluentd:v1.17-1

# Use root account to use apk
USER root
Expand All @@ -246,7 +246,7 @@ USER fluent
#### Debian version

```Dockerfile
FROM fluent/fluentd:v1.16-debian-1
FROM fluent/fluentd:v1.17-debian-1

# Use root account to use apt
USER root
Expand Down Expand Up @@ -389,9 +389,9 @@ through a [GitHub issue](https://github.com/fluent/fluentd-docker-image/issues).
[fluentd-1-4-debian]: https://github.com/fluent/fluentd-docker-image/blob/master/v1.4/debian/Dockerfile
[fluentd-1-4-debian-onbuild]: https://github.com/fluent/fluentd-docker-image/blob/master/v1.4/debian-onbuild/Dockerfile
[fluentd-1-4-windows]: https://github.com/fluent/fluentd-docker-image/blob/master/v1.4/windows/Dockerfile
[fluentd-1-alpine]: https://github.com/fluent/fluentd-docker-image/blob/master/v1.16/alpine/Dockerfile
[fluentd-1-debian]: https://github.com/fluent/fluentd-docker-image/blob/master/v1.16/debian/Dockerfile
[fluentd-1-debian-arm64]: https://github.com/fluent/fluentd-docker-image/blob/master/v1.16/arm64/debian/Dockerfile
[fluentd-1-debian-armhf]: https://github.com/fluent/fluentd-docker-image/blob/master/v1.16/armhf/debian/Dockerfile
[fluentd-1-ltsc2019-windows]: https://github.com/fluent/fluentd-docker-image/blob/master/v1.16/windows-ltsc2019/Dockerfile
[fluentd-1-ltsc2022-windows]: https://github.com/fluent/fluentd-docker-image/blob/master/v1.16/windows-ltsc2019/Dockerfile
[fluentd-1-alpine]: https://github.com/fluent/fluentd-docker-image/blob/master/v1.17/alpine/Dockerfile
[fluentd-1-debian]: https://github.com/fluent/fluentd-docker-image/blob/master/v1.17/debian/Dockerfile
[fluentd-1-debian-arm64]: https://github.com/fluent/fluentd-docker-image/blob/master/v1.17/arm64/debian/Dockerfile
[fluentd-1-debian-armhf]: https://github.com/fluent/fluentd-docker-image/blob/master/v1.17/armhf/debian/Dockerfile
[fluentd-1-ltsc2019-windows]: https://github.com/fluent/fluentd-docker-image/blob/master/v1.17/windows-ltsc2019/Dockerfile
[fluentd-1-ltsc2022-windows]: https://github.com/fluent/fluentd-docker-image/blob/master/v1.17/windows-ltsc2019/Dockerfile
51 changes: 51 additions & 0 deletions v1.17/alpine/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# AUTOMATICALLY GENERATED
# DO NOT EDIT THIS FILE DIRECTLY, USE /Dockerfile.template.erb

FROM alpine:3.19
LABEL maintainer "Fluentd developers <fluentd@googlegroups.com>"
LABEL Description="Fluentd docker image" Vendor="Fluent Organization" Version="1.17.0"

# 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 add --no-cache \
ca-certificates \
ruby ruby-irb ruby-etc ruby-webrick \
tini \
&& apk add --no-cache --virtual .build-deps \
build-base linux-headers \
ruby-dev gnupg \
&& echo 'gem: --no-document' >> /etc/gemrc \
&& gem install oj -v 3.16.1 \
&& gem install json -v 2.6.3 \
&& gem install rexml -v 3.2.6 \
&& gem install async -v 1.31.0 \
&& gem install async-http -v 0.60.2 \
&& gem install fluentd -v 1.17.0 \
&& gem install bigdecimal -v 1.4.4 \
&& apk del .build-deps \
&& rm -rf /var/cache/apk/* \
&& rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem /usr/lib/ruby/gems/3.*/gems/fluentd-*/test

RUN addgroup -S fluent && adduser -S -G fluent fluent \
# for log storage (maybe shared with host)
&& mkdir -p /fluentd/log \
# configuration/plugins path (default: copied from .)
&& mkdir -p /fluentd/etc /fluentd/plugins \
&& chown -R fluent /fluentd && chgrp -R fluent /fluentd


COPY fluent.conf /fluentd/etc/
COPY entrypoint.sh /bin/


ENV FLUENTD_CONF="fluent.conf"

ENV LD_PRELOAD=""
EXPOSE 24224 5140

USER fluent
ENTRYPOINT ["tini", "--", "/bin/entrypoint.sh"]
CMD ["fluentd"]

28 changes: 28 additions & 0 deletions v1.17/alpine/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/sh

#source vars if file exists
DEFAULT=/etc/default/fluentd

if [ -r $DEFAULT ]; then
set -o allexport
. $DEFAULT
set +o allexport
fi

# If the user has supplied only arguments append them to `fluentd` command
if [ "${1#-}" != "$1" ]; then
set -- fluentd "$@"
fi

# If user does not supply config file or plugins, use the default
if [ "$1" = "fluentd" ]; then
if ! echo $@ | grep -e ' \-c' -e ' \-\-config' ; then
set -- "$@" --config /fluentd/etc/${FLUENTD_CONF}
fi

if ! echo $@ | grep -e ' \-p' -e ' \-\-plugin' ; then
set -- "$@" --plugin /fluentd/plugins
fi
fi

exec "$@"
33 changes: 33 additions & 0 deletions v1.17/alpine/fluent.conf
Original file line number Diff line number Diff line change
@@ -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>
16 changes: 16 additions & 0 deletions v1.17/alpine/hooks/post_push
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash
# AUTOMATICALLY GENERATED
# DO NOT EDIT THIS FILE DIRECTLY, USE /post_push.erb

set -e

# Parse image name for repo name
tagStart=$(expr index "$IMAGE_NAME" :)
repoName=${IMAGE_NAME:0:tagStart-1}

# Tag and push image for each additional tag
for tag in {v1.17.0-1.0,v1.17-1,edge}; do
docker tag $IMAGE_NAME ${repoName}:${tag}
docker push ${repoName}:${tag}

done
81 changes: 81 additions & 0 deletions v1.17/arm64/debian/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# AUTOMATICALLY GENERATED
# DO NOT EDIT THIS FILE DIRECTLY, USE /Dockerfile.template.erb

# To set multiarch build for Docker hub automated build.
FROM golang:alpine AS builder
WORKDIR /go
ENV QEMU_DOWNLOAD_SHA256 5db25cccb40ac7b1ca857653b883376b931d91b06ff34ffe70dcf6180bd07bb8
RUN apk add curl --no-cache
RUN curl -sL -o qemu-6.0.0.balena1-aarch64.tar.gz https://github.com/balena-io/qemu/releases/download/v6.0.0%2Bbalena1/qemu-6.0.0.balena1-aarch64.tar.gz && echo "$QEMU_DOWNLOAD_SHA256 *qemu-6.0.0.balena1-aarch64.tar.gz" | sha256sum -c - | tar zxvf qemu-6.0.0.balena1-aarch64.tar.gz -C . && mv qemu-6.0.0+balena1-aarch64/qemu-aarch64-static .

FROM --platform=linux/arm64 arm64v8/ruby:3.2-slim-bookworm
COPY --from=builder /go/qemu-aarch64-static /usr/bin/
LABEL maintainer "Fluentd developers <fluentd@googlegroups.com>"
LABEL Description="Fluentd docker image" Vendor="Fluent Organization" Version="1.17.0"
ARG CROSS_BUILD_START="cross-build-start"
ARG CROSS_BUILD_END="cross-build-end"
RUN [ ${CROSS_BUILD_START} ]
ENV TINI_VERSION=0.18.0

# 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 install -y --no-install-recommends \
ca-certificates \
&& buildDeps=" \
make gcc g++ libc-dev \
wget bzip2 gnupg dirmngr \
" \
&& apt-get install -y --no-install-recommends $buildDeps \
&& echo 'gem: --no-document' >> /etc/gemrc \
&& gem install oj -v 3.16.1 \
&& gem install json -v 2.6.3 \
&& gem install rexml -v 3.2.6 \
&& gem install async -v 1.31.0 \
&& gem install async-http -v 0.60.2 \
&& gem install fluentd -v 1.17.0 \
&& dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \
&& wget -O /usr/local/bin/tini "https://github.com/krallin/tini/releases/download/v$TINI_VERSION/tini-$dpkgArch" \
&& wget -O /usr/local/bin/tini.asc "https://github.com/krallin/tini/releases/download/v$TINI_VERSION/tini-$dpkgArch.asc" \
&& export GNUPGHOME="$(mktemp -d)" \
&& gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 6380DC428747F6C393FEACA59A84159D7001A4E5 \
&& gpg --batch --verify /usr/local/bin/tini.asc /usr/local/bin/tini \
&& rm -r /usr/local/bin/tini.asc \
&& chmod +x /usr/local/bin/tini \
&& tini -h \
&& wget -O /tmp/jemalloc-5.3.0.tar.bz2 https://github.com/jemalloc/jemalloc/releases/download/5.3.0/jemalloc-5.3.0.tar.bz2 \
&& cd /tmp && tar -xjf jemalloc-5.3.0.tar.bz2 && cd jemalloc-5.3.0/ \
# Don't use MADV_FREE to reduce memory usage and improve stability
# https://github.com/fluent/fluentd-docker-image/pull/350
&& (echo "je_cv_madv_free=no" > config.cache) && ./configure -C && make \
&& mv lib/libjemalloc.so.2 /usr/lib \
&& apt-get purge -y --auto-remove \
-o APT::AutoRemove::RecommendsImportant=false \
$buildDeps \
'*-dev' \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem /usr/lib/ruby/gems/3.*/gems/fluentd-*/test

RUN groupadd -r fluent && useradd -r -g fluent fluent \
# for log storage (maybe shared with host)
&& mkdir -p /fluentd/log \
# configuration/plugins path (default: copied from .)
&& mkdir -p /fluentd/etc /fluentd/plugins \
&& chown -R fluent /fluentd && chgrp -R fluent /fluentd


COPY fluent.conf /fluentd/etc/
COPY entrypoint.sh /bin/


ENV FLUENTD_CONF="fluent.conf"

ENV LD_PRELOAD="/usr/lib/libjemalloc.so.2"
EXPOSE 24224 5140

USER fluent
ENTRYPOINT ["tini", "--", "/bin/entrypoint.sh"]
CMD ["fluentd"]

RUN [ ${CROSS_BUILD_END} ]
28 changes: 28 additions & 0 deletions v1.17/arm64/debian/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/sh

#source vars if file exists
DEFAULT=/etc/default/fluentd

if [ -r $DEFAULT ]; then
set -o allexport
. $DEFAULT
set +o allexport
fi

# If the user has supplied only arguments append them to `fluentd` command
if [ "${1#-}" != "$1" ]; then
set -- fluentd "$@"
fi

# If user does not supply config file or plugins, use the default
if [ "$1" = "fluentd" ]; then
if ! echo $@ | grep -e ' \-c' -e ' \-\-config' ; then
set -- "$@" --config /fluentd/etc/${FLUENTD_CONF}
fi

if ! echo $@ | grep -e ' \-p' -e ' \-\-plugin' ; then
set -- "$@" --plugin /fluentd/plugins
fi
fi

exec "$@"

0 comments on commit 771fee0

Please sign in to comment.