FROM ubuntu:16.04 ENV DEBIAN_FRONTEND noninteractive # Prepare apt-get RUN apt-get update && apt-get -y --no-install-recommends install software-properties-common # Add Mraa Repository RUN add-apt-repository ppa:mraa/mraa && \ # Update apt-get apt-get -y update && \ # Install apt-utils apt-get -y --no-install-recommends install apt-utils && \ # Main Build Dependencies apt-get -y --no-install-recommends install git build-essential cmake swig clang-3.8 gcc-5 g++-5 libpthread-stubs0-dev pkg-config wget unzip \ # Mraa Build Dependencies libmraa1 libmraa-dev mraa-tools \ # Docs Build Dependencies python-sphinx doxygen graphviz \ # Sensor Specific Build Dependencies libjpeg-dev # Test Build Dependencies RUN apt-get -y --no-install-recommends install python python-dev python-pip && \ pip install chardet # Install gcc-6 g++-6 RUN add-apt-repository ppa:ubuntu-toolchain-r/test && \ apt-get update && \ apt-get -y --no-install-recommends install gcc-6 g++-6 WORKDIR /opt # Install libbacnet 0.3.12 RUN wget https://downloads.sourceforge.net/project/bacnet/bacnet-stack/bacnet-stack-0.8.3/bacnet-stack-0.8.3.zip && \ unzip -qq bacnet-stack-0.8.3.zip && cd bacnet-stack-0.8.3 && \ BACDL_DEFINE=-DBACDL_MSTP=1 MAKE_DEFINE=-fPIC make clean all && \ cp /opt/bacnet-stack-0.8.3/lib/libbacnet.a /usr/lib/libbacnet.a && \ echo "prefix=/usr" >> /usr/lib/pkgconfig/libbacnet.pc && \ echo "exec_prefix=\${prefix}" >> /usr/lib/pkgconfig/libbacnet.pc && \ echo "libdir=\${exec_prefix}/lib" >> /usr/lib/pkgconfig/libbacnet.pc && \ echo "includedir=\${exec_prefix}/include" >> /usr/lib/pkgconfig/libbacnet.pc && \ echo "Name: bacnet" >> /usr/lib/pkgconfig/libbacnet.pc && \ echo "Description: BACnet library" >> /usr/lib/pkgconfig/libbacnet.pc && \ echo "Version: 0.8.3" >> /usr/lib/pkgconfig/libbacnet.pc && \ echo "Libs: -L\${libdir} -lbacnet" >> /usr/lib/pkgconfig/libbacnet.pc && \ echo "Cflags: -I\${includedir}/bacnet" >> /usr/lib/pkgconfig/libbacnet.pc && \ mkdir /usr/include/bacnet && \ cp /opt/bacnet-stack-0.8.3/include/* /usr/include/bacnet/ && \ rm -fr /opt/bacnet-stack-0.8.3.zip # Install libmodbus 3.1.4 RUN wget http://libmodbus.org/releases/libmodbus-3.1.4.tar.gz && \ tar xf libmodbus-3.1.4.tar.gz && cd libmodbus-3.1.4 && \ ./configure && make -j8 && make install && \ rm -fr /opt/libmodbus-3.1.4.tar.gz # Install openzwave RUN apt-get update && apt-get -y --no-install-recommends install libudev-dev && \ git clone --depth 1 https://github.com/OpenZWave/open-zwave.git && cd open-zwave && make -j8 install && \ echo "/usr/local/lib64" >> /etc/ld.so.conf.d/openzwave.conf # Set Workdir ARG UPM_SRC_DIR=/usr/src/app ENV UPM_SRC_DIR $UPM_SRC_DIR WORKDIR $UPM_SRC_DIR CMD bash