Skip to content

Commit c99a9d6

Browse files
committed
Reduce teh image size
- Reduced the image size from 1.3G to 400MB Signed-off-by: Dimal Baby <[email protected]>
1 parent 8db291e commit c99a9d6

File tree

1 file changed

+38
-45
lines changed

1 file changed

+38
-45
lines changed

base-image/Dockerfile

+38-45
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,56 @@
11
# Copyright © 2018 VMware, Inc. All Rights Reserved.
22
# SPDX-License-Identifier: BSD-2-Clause
3+
# Similar to https://github.com/drecom/docker-centos-ruby/blob/2.6.5-slim/Dockerfile
34

4-
FROM photon:3.0
5+
ARG RUBY_PATH=/usr/local
6+
ARG RUBY_VERSION=2.6.5
57

6-
# rever user fluent from parent
7-
USER root
8+
FROM photon:3.0 AS rubybuild
9+
ARG RUBY_PATH
10+
ARG RUBY_VERSION
11+
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
12+
13+
COPY basegems/Gemfile Gemfile
14+
RUN git clone git://github.com/rbenv/ruby-build.git $RUBY_PATH/plugins/ruby-build \
15+
&& $RUBY_PATH/plugins/ruby-build/install.sh \
16+
&& ruby-build $RUBY_VERSION $RUBY_PATH/ \
17+
&& gem install -g --file Gemfile \
18+
&& gem uninstall rake -v 12.3.2 \
19+
&& gem uninstall bigdecimal -v 1.4.1
820

21+
FROM photon:3.0
22+
ARG RUBY_PATH
23+
ENV PATH $RUBY_PATH/bin:$PATH
24+
COPY --from=rubybuild $RUBY_PATH $RUBY_PATH
925
# Not sure why this is needed: see https://github.com/fluent/fluentd-kubernetes-daemonset/blob/master/docker-image/v1.4/debian-elasticsearch/Dockerfile
1026
ENV FLUENTD_DISABLE_BUNDLER_INJECTION 1
11-
1227
# start with a valid empty file
1328
COPY failsafe.conf /fluentd/failsafe.conf
14-
1529
# custom entrypoint
1630
COPY entrypoint.sh /fluentd/entrypoint.sh
1731

18-
# list gems here
19-
COPY Gemfile /fluentd
32+
USER root
2033

2134
ENTRYPOINT ["/fluentd/entrypoint.sh"]
22-
23-
RUN tdnf update -y && tdnf upgrade -y && tdnf erase -y toybox
24-
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
25-
26-
RUN curl -o ruby.tgz https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.5.tar.gz \
27-
&& tar xvzf ruby.tgz \
28-
&& cd ruby-2.6.5 \
29-
&& ./configure && make && make install
30-
31-
COPY basegems/Gemfile Gemfile
32-
RUN gem install -g --file Gemfile && mv Gemfile Gemfile.base
33-
34-
ENV FLUENTD_CONF=""
35-
ENV FLUENTD_DISABLE_BUNDLER_INJECTION 1
36-
ENV PATH /fluentd/vendor/bundle/ruby/2.6.0/bin:$PATH
37-
38-
RUN mkdir -p /fluentd/log /fluentd/etc /fluentd/plugins
35+
# list gems here
3936
COPY Gemfile /fluentd
40-
41-
RUN buildDeps="\
42-
gmp-devel libffi-devel" \
43-
&& tdnf install -y $buildDeps \
44-
&& echo 'gem: --no-document' >> /etc/gemrc \
45-
&& bundle config silence_root_warning true \
46-
&& wget https://github.com/vmware/fluent-plugin-vmware-log-intelligence/releases/download/v2.0.0/fluent-plugin-vmware-log-intelligence-2.0.0.gem \
47-
&& bundle install --gemfile=/fluentd/Gemfile \
48-
&& fluent-gem install --local fluent-plugin-vmware-log-intelligence-2.0.0.gem \
49-
&& tdnf clean all \
50-
&& tdnf remove -y $buildDeps \
51-
&& gem sources --clear-all \
52-
&& 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
37+
RUN mkdir -p /fluentd/log /fluentd/etc /fluentd/plugins /usr/local/bundle/bin/ \
38+
&& tdnf erase -y toybox \
39+
&& buildDeps="\
40+
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" \
41+
&& tdnf install -y $buildDeps util-linux systemd net-tools\
42+
&& wget https://raw.githubusercontent.com/fluent/fluentd-kubernetes-daemonset/master/docker-image/v1.4/debian-elasticsearch/plugins/parser_kubernetes.rb -P /fluentd/plugins \
43+
&& wget https://raw.githubusercontent.com/fluent/fluentd-kubernetes-daemonset/master/docker-image/v1.4/debian-elasticsearch/plugins/parser_multiline_kubernetes.rb -P /fluentd/plugins \
44+
&& echo 'gem: --no-document' >> /etc/gemrc \
45+
&& bundle config silence_root_warning true \
46+
&& wget https://github.com/vmware/fluent-plugin-vmware-log-intelligence/releases/download/v2.0.0/fluent-plugin-vmware-log-intelligence-2.0.0.gem \
47+
&& bundle install --gemfile=/fluentd/Gemfile \
48+
&& fluent-gem install --local fluent-plugin-vmware-log-intelligence-2.0.0.gem \
49+
&& tdnf clean all \
50+
&& gem sources --clear-all \
51+
&& ln -s $(which fluentd) /usr/local/bundle/bin/fluentd \
52+
&& tdnf remove -y $buildDeps \
53+
&& rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem /fluent-plugin-vmware-log-intelligence-2.0.0.gem
5354

5455
EXPOSE 24444 5140
55-
56-
57-
# copy k8s config
58-
ADD https://raw.githubusercontent.com/fluent/fluentd-kubernetes-daemonset/master/docker-image/v1.4/debian-elasticsearch/plugins/parser_kubernetes.rb /fluentd/plugins
59-
ADD https://raw.githubusercontent.com/fluent/fluentd-kubernetes-daemonset/master/docker-image/v1.4/debian-elasticsearch/plugins/parser_multiline_kubernetes.rb /fluentd/plugins
60-
6156
COPY plugins /fluentd/plugins
62-
RUN mkdir -p /usr/local/bundle/bin/ && ln -s $(which fluentd) /usr/local/bundle/bin/fluentd
63-
RUN gem uninstall rake -v 12.3.2

0 commit comments

Comments
 (0)