-
Notifications
You must be signed in to change notification settings - Fork 99
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Reduced the image size from 1.3G to 400MB Signed-off-by: Dimal Baby <dbaby@vmware.com>
- Loading branch information
Showing
1 changed file
with
38 additions
and
45 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 |
---|---|---|
@@ -1,63 +1,56 @@ | ||
# Copyright © 2018 VMware, Inc. All Rights Reserved. | ||
# SPDX-License-Identifier: BSD-2-Clause | ||
# Similar to https://github.com/drecom/docker-centos-ruby/blob/2.6.5-slim/Dockerfile | ||
|
||
FROM photon:3.0 | ||
ARG RUBY_PATH=/usr/local | ||
ARG RUBY_VERSION=2.6.5 | ||
|
||
# rever user fluent from parent | ||
USER root | ||
FROM photon:3.0 AS rubybuild | ||
ARG RUBY_PATH | ||
ARG RUBY_VERSION | ||
RUN tdnf erase -y toybox && tdnf install -y bzip2 shadow wget which vim less tar gzip util-linux sed gcc build-essential zlib-devel libedit libedit-devel gdbm gdbm-devel openssl-devel systemd net-tools git | ||
|
||
COPY basegems/Gemfile Gemfile | ||
RUN git clone git://github.com/rbenv/ruby-build.git $RUBY_PATH/plugins/ruby-build \ | ||
&& $RUBY_PATH/plugins/ruby-build/install.sh \ | ||
&& ruby-build $RUBY_VERSION $RUBY_PATH/ \ | ||
&& gem install -g --file Gemfile \ | ||
&& gem uninstall rake -v 12.3.2 \ | ||
&& gem uninstall bigdecimal -v 1.4.1 | ||
|
||
FROM photon:3.0 | ||
ARG RUBY_PATH | ||
ENV PATH $RUBY_PATH/bin:$PATH | ||
COPY --from=rubybuild $RUBY_PATH $RUBY_PATH | ||
# Not sure why this is needed: see https://github.com/fluent/fluentd-kubernetes-daemonset/blob/master/docker-image/v1.4/debian-elasticsearch/Dockerfile | ||
ENV FLUENTD_DISABLE_BUNDLER_INJECTION 1 | ||
|
||
# start with a valid empty file | ||
COPY failsafe.conf /fluentd/failsafe.conf | ||
|
||
# custom entrypoint | ||
COPY entrypoint.sh /fluentd/entrypoint.sh | ||
|
||
# list gems here | ||
COPY Gemfile /fluentd | ||
USER root | ||
|
||
ENTRYPOINT ["/fluentd/entrypoint.sh"] | ||
|
||
RUN tdnf update -y && tdnf upgrade -y && tdnf erase -y toybox | ||
RUN tdnf install -y shadow wget which vim less tar gzip util-linux sed gcc build-essential zlib1g-dev zlib-devel libedit libedit-devel gdbm gdbm-devel openssl-devel systemd net-tools | ||
|
||
RUN curl -o ruby.tgz https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.5.tar.gz \ | ||
&& tar xvzf ruby.tgz \ | ||
&& cd ruby-2.6.5 \ | ||
&& ./configure && make && make install | ||
|
||
COPY basegems/Gemfile Gemfile | ||
RUN gem install -g --file Gemfile && mv Gemfile Gemfile.base | ||
|
||
ENV FLUENTD_CONF="" | ||
ENV FLUENTD_DISABLE_BUNDLER_INJECTION 1 | ||
ENV PATH /fluentd/vendor/bundle/ruby/2.6.0/bin:$PATH | ||
|
||
RUN mkdir -p /fluentd/log /fluentd/etc /fluentd/plugins | ||
# list gems here | ||
COPY Gemfile /fluentd | ||
|
||
RUN buildDeps="\ | ||
gmp-devel libffi-devel" \ | ||
&& tdnf install -y $buildDeps \ | ||
&& echo 'gem: --no-document' >> /etc/gemrc \ | ||
&& bundle config silence_root_warning true \ | ||
&& wget https://github.com/vmware/fluent-plugin-vmware-log-intelligence/releases/download/v2.0.0/fluent-plugin-vmware-log-intelligence-2.0.0.gem \ | ||
&& bundle install --gemfile=/fluentd/Gemfile \ | ||
&& fluent-gem install --local fluent-plugin-vmware-log-intelligence-2.0.0.gem \ | ||
&& tdnf clean all \ | ||
&& tdnf remove -y $buildDeps \ | ||
&& gem sources --clear-all \ | ||
&& rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem /fluent-plugin-vmware-log-intelligence-2.0.0.gem ruby.tgz ruby-2.6.5 | ||
RUN mkdir -p /fluentd/log /fluentd/etc /fluentd/plugins /usr/local/bundle/bin/ \ | ||
&& tdnf erase -y toybox \ | ||
&& buildDeps="\ | ||
gmp-devel libffi-devel bzip2 shadow wget which vim less tar gzip sed gcc build-essential zlib-devel libedit libedit-devel gdbm gdbm-devel openssl-devel" \ | ||
&& tdnf install -y $buildDeps util-linux systemd net-tools\ | ||
&& wget https://raw.githubusercontent.com/fluent/fluentd-kubernetes-daemonset/master/docker-image/v1.4/debian-elasticsearch/plugins/parser_kubernetes.rb -P /fluentd/plugins \ | ||
&& wget https://raw.githubusercontent.com/fluent/fluentd-kubernetes-daemonset/master/docker-image/v1.4/debian-elasticsearch/plugins/parser_multiline_kubernetes.rb -P /fluentd/plugins \ | ||
&& echo 'gem: --no-document' >> /etc/gemrc \ | ||
&& bundle config silence_root_warning true \ | ||
&& wget https://github.com/vmware/fluent-plugin-vmware-log-intelligence/releases/download/v2.0.0/fluent-plugin-vmware-log-intelligence-2.0.0.gem \ | ||
&& bundle install --gemfile=/fluentd/Gemfile \ | ||
&& fluent-gem install --local fluent-plugin-vmware-log-intelligence-2.0.0.gem \ | ||
&& tdnf clean all \ | ||
&& gem sources --clear-all \ | ||
&& ln -s $(which fluentd) /usr/local/bundle/bin/fluentd \ | ||
&& tdnf remove -y $buildDeps \ | ||
&& rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem /fluent-plugin-vmware-log-intelligence-2.0.0.gem | ||
|
||
EXPOSE 24444 5140 | ||
|
||
|
||
# copy k8s config | ||
ADD https://raw.githubusercontent.com/fluent/fluentd-kubernetes-daemonset/master/docker-image/v1.4/debian-elasticsearch/plugins/parser_kubernetes.rb /fluentd/plugins | ||
ADD https://raw.githubusercontent.com/fluent/fluentd-kubernetes-daemonset/master/docker-image/v1.4/debian-elasticsearch/plugins/parser_multiline_kubernetes.rb /fluentd/plugins | ||
|
||
COPY plugins /fluentd/plugins | ||
RUN mkdir -p /usr/local/bundle/bin/ && ln -s $(which fluentd) /usr/local/bundle/bin/fluentd | ||
RUN gem uninstall rake -v 12.3.2 |