1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- # Copyright 2017 The Kubernetes Authors.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- # This Dockerfile will build an image that is configured
- # to run Fluentd with an Elasticsearch plug-in and the
- # provided configuration file.
- # The image acts as an executable for the binary /usr/sbin/td-agent.
- # Note that fluentd is run with root permssion to allow access to
- # log files with root only access under /var/log/containers/*
- FROM debian:stretch-slim
- ARG DEBIAN_FRONTEND=noninteractive
- COPY clean-apt /usr/bin
- COPY clean-install /usr/bin
- COPY Gemfile /Gemfile
- # 1. Install & configure dependencies.
- # 2. Install fluentd via ruby.
- # 3. Remove build dependencies.
- # 4. Cleanup leftover caches & files.
- RUN BUILD_DEPS="make gcc g++ libc6-dev ruby-dev libffi-dev" \
- && clean-install $BUILD_DEPS \
- ca-certificates \
- libjemalloc1 \
- ruby \
- && echo 'gem: --no-document' >> /etc/gemrc \
- && gem install --file Gemfile \
- && apt-get purge -y --auto-remove \
- -o APT::AutoRemove::RecommendsImportant=false \
- $BUILD_DEPS \
- && clean-apt \
- # Ensure fluent has enough file descriptors
- && ulimit -n 65536
- # Copy the Fluentd configuration file for logging Docker container logs.
- COPY fluent.conf /etc/fluent/fluent.conf
- COPY run.sh /run.sh
- # Expose prometheus metrics.
- EXPOSE 80
- ENV LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.1
- # Start Fluentd to pick up our config that watches Docker container logs.
- CMD ["/run.sh"]
|