mirror of
https://github.com/Fishwaldo/qt-openzwave.git
synced 2025-07-10 07:08:21 +00:00
47 lines
3.2 KiB
Docker
47 lines
3.2 KiB
Docker
############################################################
|
|
# Dockerfile to build OpenZWave Library container images
|
|
# Based on CentOS7
|
|
############################################################
|
|
|
|
# Set the base image to Alpine
|
|
FROM debian:buster-slim as builder
|
|
|
|
# File Author / Maintainer
|
|
LABEL maintainer="justin@dynam.ac"
|
|
|
|
WORKDIR /opt
|
|
|
|
RUN echo 'APT::Default-Release "stable";' > /etc/apt/apt.conf.d/99defaultrelease && echo 'deb http://ftp.debian.org/debian/ unstable main contrib non-free' > /etc/apt/sources.list.d/unstable.list && echo 'deb http://ftp.debian.org/debian/ experimental main contrib non-free' >> /etc/apt/sources.list.d/unstable.list && apt update
|
|
RUN apt-get -y install rapidjson-dev git g++ cmake make pkgconf bash python wget joe mc libunwind-dev libcurl4-openssl-dev && apt-get -y -t unstable install qt5-default && apt-get -y -t unstable install qtbase5-private-dev && apt-get -y -t unstable install g++ && apt-get -y -t experimental install libqt5remoteobjects5-dev libqt5remoteobjects5-bin
|
|
ENV PATH=$PATH:/opt/depot_tools/
|
|
RUN git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git && mkdir breakpad && cd breakpad && fetch breakpad && cd src && ./configure --disable-processor && make && make install
|
|
RUN git clone https://github.com/qt/qtmqtt.git && cd qtmqtt && git checkout 5.12 && /usr/lib/qt5/bin/qmake QT_BUILD_PARTS="libs tools" && make && make install
|
|
RUN git clone https://github.com/OpenZWave/open-zwave.git && cd open-zwave && make -j4 && make install
|
|
COPY . /opt/qt-openzwave/
|
|
RUN cd qt-openzwave && if [ -f Makefile ]; then /usr/lib/qt5/bin/qmake -r; make distclean; fi && /usr/lib/qt5/bin/qmake -r "CONFIG+=BreakPad" && make -j4 && make install
|
|
|
|
FROM debian:buster-slim
|
|
|
|
LABEL maintainer="justin@dynam.ac"
|
|
|
|
WORKDIR /opt
|
|
|
|
RUN echo 'APT::Default-Release "stable";' > /etc/apt/apt.conf.d/99defaultrelease && echo 'deb http://ftp.debian.org/debian/ unstable main contrib non-free' > /etc/apt/sources.list.d/unstable.list && echo 'deb http://ftp.debian.org/debian/ experimental main contrib non-free' >> /etc/apt/sources.list.d/unstable.list && apt update && apt-get -y install libunwind8 libcurl4 && apt-get -y -t unstable install libqt5core5a libqt5network5 && apt-get -y -t experimental install libqt5remoteobjects5 && apt-get clean && rm -rf /var/lib/apt/lists/* && mkdir -p /opt/ozw/config/crashes/
|
|
|
|
COPY --from=builder /usr/local/bin/* /usr/local/bin/
|
|
COPY --from=builder /usr/local/lib/libqt* /usr/local/lib/
|
|
COPY --from=builder /usr/local/lib*/libopenzwave* /usr/local/lib/
|
|
COPY --from=builder /usr/lib/*/libQt5Mqtt* /usr/local/lib/
|
|
COPY --from=builder /opt/qt-openzwave/tools/* /usr/local/bin/
|
|
COPY --from=builder /usr/share/OpenZWave/qt-openzwavedatabase.rcc /usr/share/OpenZWave/
|
|
RUN mkdir -p /opt/ozw/config/crashes/
|
|
ENV LD_LIBRARY_PATH="/usr/local/lib:/usr/local/lib64:$LD_LIBRARY_PATH"
|
|
ENV USBPATH="/dev/ttyUSB0"
|
|
ENV MQTT_SERVER="localhost"
|
|
ENV MQTT_PORT="1883"
|
|
ENV OZW_INSTANCE="1"
|
|
ENV BP_DB_PATH="/opt/ozw/config/crashes/"
|
|
WORKDIR /opt/ozw/
|
|
EXPOSE 1983
|
|
VOLUME ["/opt/ozw/config/"]
|
|
ENTRYPOINT /usr/local/bin/ozwdaemon -s $USBPATH -c /opt/ozw/config/ -u /opt/ozw/config/ --mqtt-server $MQTT_SERVER --mqtt-port $MQTT_PORT --stop-on-failure --mqtt-instance $OZW_INSTANCE
|