-
Notifications
You must be signed in to change notification settings - Fork 353
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Kentaro Hayashi <hayashi@clear-code.com>
- Loading branch information
Showing
26 changed files
with
884 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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"] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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} ] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
#!/bin/bash | ||
|
||
|
||
# AUTOMATICALLY GENERATED | ||
# DO NOT EDIT THIS FILE DIRECTLY, USE /post_checkout.erb | ||
|
||
|
||
set -e | ||
|
||
HOST_ARCH=$(uname -m) | ||
|
||
if [ x"${HOST_ARCH}" == x"aarch64" ]; then | ||
echo "Building arm64 image natively" | ||
exit | ||
fi | ||
|
||
# Enable cross-platform builds https://github.com/multiarch/qemu-user-static | ||
docker run --rm --privileged multiarch/qemu-user-static:register --reset | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
#!/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} | ||
|
||
# Download manifest tool | ||
curl -Lo manifest-tool https://github.com/estesp/manifest-tool/releases/download/v1.0.3/manifest-tool-linux-amd64 | ||
chmod +x manifest-tool | ||
|
||
# Tag and push image for each additional tag | ||
for tag in {v1.17.0-debian-arm64-1.0,v1.16-debian-arm64-1,edge-debian-arm64}; do | ||
docker tag $IMAGE_NAME ${repoName}:${tag} | ||
docker push ${repoName}:${tag} | ||
|
||
archTag=${tag/amd64/ARCH} | ||
archTag=${archTag/arm64/ARCH} | ||
noArchTag=${tag/-amd64/} | ||
noArchTag=${noArchTag/-arm64/} | ||
# Note: this will fail until three of the amd64 and arm64 images have been pushed | ||
./manifest-tool push from-args \ | ||
--platforms linux/amd64,linux/arm64 \ | ||
--template ${repoName}:${archTag} \ | ||
--target ${repoName}:${noArchTag} || true | ||
|
||
done |
Oops, something went wrong.