Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add v1.17.0 images #381

Merged
merged 4 commits into from
May 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 "$@"
Loading