[docker][experimental] Split the build
[barometer.git] / docker / barometer-collectd-experimental / Dockerfile
1 # Copyright 2017-2021 Intel Corporation, Anuket and others.
2 # All rights reserved.
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 #
16
17 FROM centos:8 as builder
18
19 ARG COLLECTD_FLAVOR=experimental
20 ARG COLLECTD_PULL_REQUESTS
21 ARG COLLECTD_CONFIG_CMD_ARGS
22 ARG COLLECTD_TAG
23 ARG WITH_DPDK=n
24
25 ENV DOCKER y
26 ENV repos_dir /src
27
28 RUN mkdir -p ${repos_dir}/barometer
29 COPY . ${repos_dir}/barometer
30
31 WORKDIR ${repos_dir}/barometer/systems
32 RUN ./build_base_machine.sh && \
33         dnf clean all && rm -rf /var/cache/dnf
34
35 FROM centos:8
36
37 COPY docker/barometer-collectd-experimental/run_collectd.sh /run_collectd.sh
38 RUN chmod +x /run_collectd.sh
39
40 RUN useradd -ms /bin/bash collectd_exec && \
41       echo "collectd_exec ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
42
43 COPY --from=builder /opt/collectd /opt/collectd
44 COPY --from=builder /usr/local/src /usr/local/src
45 COPY --from=builder /usr/share/snmp/mibs /usr/share/snmp/mibs
46 COPY --from=builder /opt/collectd/share/collectd/types.db /usr/share/collectd/types.db
47
48 RUN dnf install -y 'dnf-command(builddep)' centos-release-opstools && \
49       dnf config-manager --set-enabled powertools && \
50       dnf builddep -y https://raw.githubusercontent.com/centos-opstools/collectd/master/collectd.spec && \
51       dnf install -y jansson && \
52       dnf clean all && rm -rf /var/cache/dnf
53
54 ENTRYPOINT ["/run_collectd.sh"]