forked from robocup-logistics/rcll-refbox
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
58 lines (56 loc) · 2.14 KB
/
Dockerfile
File metadata and controls
58 lines (56 loc) · 2.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Dockerfile for the RCLL Refbox
# Created on Wed Jun 05 15:12:42 2019
# Copyright (C) 2019 Till Hofmann <hofmann@kbsg.rwth-aachen.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
FROM fedora:29 as buildenv
RUN dnf install -y --nodocs \
avahi-devel \
boost-devel \
clips-devel \
clipsmm-devel \
gcc-c++ \
gecode-devel \
git \
glibmm24-devel \
gtkmm30-devel \
mongodb-devel \
ncurses-devel \
openssh-clients \
openssl-devel \
protobuf-compiler \
protobuf-devel \
which \
yaml-cpp-devel \
&& \
dnf install -y --nodocs 'dnf-command(copr)' && \
dnf -y copr enable thofmann/freeopcua && \
dnf install -y --nodocs freeopcua-devel && \
dnf install -y --nodocs rpm-build && \
dnf clean all
COPY . /buildenv/
SHELL ["/usr/bin/bash", "-c"]
WORKDIR /buildenv
RUN make -j`nproc` -l`nproc` USE_AVAHI=0 FAIL_ON_WARNING=1 \
EXEC_CONFDIR=/etc/rcll-refbox EXEC_BINDIR=/usr/local/bin EXEC_LIBDIR=/usr/local/lib64 \
EXEC_SHAREDIR=/usr/local/share/rcll-refbox
# Compute the dependencies and store them in requires.txt
RUN shopt -s globstar; \
/usr/lib/rpm/rpmdeps -P lib/** bin/** > provides.txt && \
/usr/lib/rpm/rpmdeps -R lib/** bin/** | grep -v -f provides.txt > requires.txt
FROM fedora:29
COPY --from=buildenv /buildenv/bin/* /usr/local/bin/
COPY --from=buildenv /buildenv/lib/* /usr/local/lib64/
COPY --from=buildenv /buildenv/src/games /usr/local/share/rcll-refbox/games
COPY --from=buildenv /buildenv/src/msgs/*.proto /usr/local/share/rcll-refbox/msgs/
COPY --from=buildenv /buildenv/cfg/* /etc/rcll-refbox/
COPY --from=buildenv /buildenv/requires.txt /
RUN echo /usr/local/lib64 > /etc/ld.so.conf.d/local.conf && /sbin/ldconfig
RUN dnf install -y --nodocs 'dnf-command(copr)' && \
dnf -y copr enable thofmann/freeopcua && \
dnf install -y --nodocs $(cat /requires.txt) && dnf clean all && rm /requires.txt
CMD ["llsf-refbox"]