|
1 | 1 | # Copyright © 2018 VMware, Inc. All Rights Reserved.
|
2 | 2 | # SPDX-License-Identifier: BSD-2-Clause
|
| 3 | +# Similar to https://github.com/drecom/docker-centos-ruby/blob/2.6.5-slim/Dockerfile |
3 | 4 |
|
4 |
| -FROM photon:3.0 |
| 5 | +ARG RUBY_PATH=/usr/local |
| 6 | +ARG RUBY_VERSION=2.6.5 |
5 | 7 |
|
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 |
8 | 20 |
|
| 21 | +FROM photon:3.0 |
| 22 | +ARG RUBY_PATH |
| 23 | +ENV PATH $RUBY_PATH/bin:$PATH |
| 24 | +COPY --from=rubybuild $RUBY_PATH $RUBY_PATH |
9 | 25 | # Not sure why this is needed: see https://github.com/fluent/fluentd-kubernetes-daemonset/blob/master/docker-image/v1.4/debian-elasticsearch/Dockerfile
|
10 | 26 | ENV FLUENTD_DISABLE_BUNDLER_INJECTION 1
|
11 |
| - |
12 | 27 | # start with a valid empty file
|
13 | 28 | COPY failsafe.conf /fluentd/failsafe.conf
|
14 |
| - |
15 | 29 | # custom entrypoint
|
16 | 30 | COPY entrypoint.sh /fluentd/entrypoint.sh
|
17 | 31 |
|
18 |
| -# list gems here |
19 |
| -COPY Gemfile /fluentd |
| 32 | +USER root |
20 | 33 |
|
21 | 34 | 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 |
39 | 36 | 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 |
53 | 54 |
|
54 | 55 | 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 |
| - |
61 | 56 | 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