diff --git a/Dockerfile.dropshell-build b/Dockerfile.dropshell-build index c2a639b..fa101c6 100644 --- a/Dockerfile.dropshell-build +++ b/Dockerfile.dropshell-build @@ -40,22 +40,26 @@ RUN apk add --no-cache \ sqlite-dev \ libpq-dev \ mariadb-connector-c-dev \ - c-ares-dev \ - jsoncpp-dev \ ninja \ util-linux-dev \ util-linux-static \ perl -RUN apk add --no-cahce \ - c-ares-dev \ - c-ares-static - #RUN apk add --no-cache --update --repository=https://dl-cdn.alpinelinux.org/alpine/v3.16/main/ libexecinfo-dev SHELL ["/bin/bash", "-c"] +ARG CARES_VERSION=1.34.5 +WORKDIR /tmp +RUN curl -LO https://github.com/c-ares/c-ares/releases/download/v${CARES_VERSION}/c-ares-${CARES_VERSION}.tar.gz && \ + tar zxvf c-ares-${CARES_VERSION}.tar.gz && \ + cd c-ares-${CARES_VERSION} && \ + ./configure --enable-static --disable-shared --prefix=/usr/local/cares && \ + make -j$(nproc) && \ + make install && \ + cd / && rm -rf /tmp/c-ares-${CARES_VERSION} /tmp/c-ares-${CARES_VERSION}.tar.gz + # Build OpenSSL statically with musl ARG OPENSSL_VERSION=3.3.0 WORKDIR /tmp @@ -69,6 +73,18 @@ RUN curl -LO https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz && make install_sw && \ cd / && rm -rf /tmp/openssl-${OPENSSL_VERSION} /tmp/openssl-${OPENSSL_VERSION}.tar.gz +# Build jsoncpp statically with musl +ARG JSONCPP_VERSION=1.9.5 +WORKDIR /tmp +RUN curl -LO https://github.com/open-source-parsers/jsoncpp/archive/refs/tags/${JSONCPP_VERSION}.tar.gz && \ + tar xzf ${JSONCPP_VERSION}.tar.gz && \ + cd jsoncpp-${JSONCPP_VERSION} && \ + mkdir build && cd build && \ + cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/usr/local/jsoncpp && \ + make -j$(nproc) && \ + make install && \ + cd / && rm -rf /tmp/jsoncpp-${JSONCPP_VERSION} /tmp/${JSONCPP_VERSION}.tar.gz + #ARG DROGON_VERSION=1.9.5 RUN git clone --recurse-submodules https://github.com/drogonframework/drogon.git /tmp/drogon && \ @@ -92,6 +108,10 @@ RUN git clone --recurse-submodules https://github.com/drogonframework/drogon.git -DUUID_LIBRARY=/usr/lib/libuuid.a \ -DOPENSSL_ROOT_DIR=/usr/local/openssl-musl \ -DOPENSSL_USE_STATIC_LIBS=TRUE \ + -DCARES_INCLUDE_DIR=/usr/local/cares/include \ + -DCARES_LIBRARY=/usr/local/cares/lib/libcares.a \ + -DJSONCPP_INCLUDE_DIR=/usr/local/jsoncpp/include/jsoncpp \ + -DJSONCPP_LIBRARY=/usr/local/jsoncpp/lib/libjsoncpp.a \ &&\ make -j$(nproc) && \ make install && \