From 15821171471ea8ff440d6fec2529a5f00d68afa0 Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Wed, 7 Nov 2018 14:13:14 +0000 Subject: [PATCH] Build own libwebsockets in Docker image. --- docker/1.5/Dockerfile | 40 ++++++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/docker/1.5/Dockerfile b/docker/1.5/Dockerfile index 83c76d9f..5295ab6a 100644 --- a/docker/1.5/Dockerfile +++ b/docker/1.5/Dockerfile @@ -5,15 +5,34 @@ LABEL maintainer="Roger Light " \ ENV VERSION=1.5.3 \ DOWNLOAD_SHA256=3081a998d303a883b1cd064009beabc88aa9159e26f5258a4ae6007160491d10 \ - GPG_KEYS=A0D6EEA1DCAE49A635A3B2F0779B22DFB3E717B7 + GPG_KEYS=A0D6EEA1DCAE49A635A3B2F0779B22DFB3E717B7 \ + LWS_VERSION=2.4.2 RUN set -x && \ apk --no-cache add --virtual build-deps \ build-base \ + cmake \ gnupg \ libressl-dev \ - libwebsockets-dev \ util-linux-dev && \ + wget https://github.com/warmcat/libwebsockets/archive/v${LWS_VERSION}.tar.gz -O /tmp/lws.tar.gz && \ + mkdir -p /build/lws && \ + tar --strip=1 -xf /tmp/lws.tar.gz -C /build/lws && \ + rm /tmp/lws.tar.gz && \ + cd /build/lws && \ + cmake . \ + -DCMAKE_BUILD_TYPE=MinSizeRel \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLWS_IPV6=ON \ + -DLWS_WITHOUT_BUILTIN_GETIFADDRS=ON \ + -DLWS_WITHOUT_CLIENT=ON \ + -DLWS_WITHOUT_EXTENSIONS=ON \ + -DLWS_WITHOUT_TESTAPPS=ON \ + -DLWS_WITH_SHARED=OFF \ + -DLWS_WITH_ZIP_FOPS=OFF \ + -DLWS_WITH_ZLIB=OFF && \ + make -j "$(nproc)" && \ + rm -rf /root/.cmake && \ wget https://mosquitto.org/files/source/mosquitto-${VERSION}.tar.gz -O /tmp/mosq.tar.gz && \ echo "$DOWNLOAD_SHA256 /tmp/mosq.tar.gz" | sha256sum -c - && \ wget https://mosquitto.org/files/source/mosquitto-${VERSION}.tar.gz.asc -O /tmp/mosq.tar.gz.asc && \ @@ -32,10 +51,12 @@ RUN set -x && \ gpg --batch --verify /tmp/mosq.tar.gz.asc /tmp/mosq.tar.gz && \ gpgconf --kill all && \ rm -rf "$GNUPGHOME" /tmp/mosq.tar.gz.asc && \ - mkdir -p /build && \ - tar --strip=1 -xf /tmp/mosq.tar.gz -C /build && \ + mkdir -p /build/mosq && \ + tar --strip=1 -xf /tmp/mosq.tar.gz -C /build/mosq && \ rm /tmp/mosq.tar.gz && \ - make -C /build -j "$(nproc)" \ + make -C /build/mosq -j "$(nproc)" \ + CFLAGS="-Wall -O2 -I/build/lws/include -flto" \ + LDFLAGS="-L/build/lws/lib -flto" \ WITH_ADNS=no \ WITH_DOCS=no \ WITH_MEMORY_TRACKING=no \ @@ -50,13 +71,12 @@ RUN set -x && \ adduser -S -D -H -h /var/empty -s /sbin/nologin -G mosquitto -g mosquitto mosquitto 2>/dev/null && \ mkdir -p /mosquitto/config /mosquitto/data /mosquitto/log && \ install -d /usr/sbin/ && \ - install -s -m755 /build/src/mosquitto /usr/sbin/mosquitto && \ - install -s -m755 /build/src/mosquitto_passwd /usr/bin/mosquitto_passwd && \ - install -m644 /build/mosquitto.conf /mosquitto/config/mosquitto.conf && \ + install -s -m755 /build/mosq/src/mosquitto /usr/sbin/mosquitto && \ + install -s -m755 /build/mosq/src/mosquitto_passwd /usr/bin/mosquitto_passwd && \ + install -m644 /build/mosq/mosquitto.conf /mosquitto/config/mosquitto.conf && \ chown -R mosquitto:mosquitto /mosquitto && \ apk --no-cache add \ - libuuid \ - libwebsockets && \ + libuuid && \ apk del build-deps && \ rm -rf /build