FROM ubuntu:24.04 ARG CONCPP_VER=9.4.0 ARG CONCPP_TGZ=mysql-connector-c++-${CONCPP_VER}-linux-glibc2.28-x86-64bit.tar.gz RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates curl xz-utils \ && rm -rf /var/lib/apt/lists/* # MySQL xDevAPI install RUN curl -fsSL -o concpp.tgz \ "https://dev.mysql.com/get/Downloads/Connector-C++/${CONCPP_TGZ}" \ && mkdir -p /opt \ && tar -xzf concpp.tgz -C /opt \ && rm concpp.tgz \ && found_dir="$(ls -1 /opt | grep -E '^mysql-connector-c\+\+-'"${CONCPP_VER}"'-')" \ && mv "/opt/${found_dir}" /opt/mysql-concpp # CMake install RUN apt-get update && apt-get install -y --no-install-recommends \ cmake build-essential \ && rm -rf /var/lib/apt/lists/* # Boost install RUN curl -L --retry 5 --retry-all-errors -o /tmp/boost.tar.gz "https://archives.boost.io/release/1.88.0/source/boost_1_88_0.tar.gz" \ && ls -lh /tmp/boost.tar.gz \ && tar -tzf /tmp/boost.tar.gz >/dev/null RUN mkdir -p /tmp/boost-src \ && tar -xzf /tmp/boost.tar.gz -C /tmp/boost-src --strip-components=1 \ && cd /tmp/boost-src \ && ./bootstrap.sh --prefix=/usr/local RUN cd /tmp/boost-src \ && ./b2 -j"$(nproc)" install # Project copy WORKDIR /project # COPY . /project EXPOSE 8080 RUN set -eux; pwd; ls -la /project; test -f /project/CMakeLists.txt # Build & Run project RUN mkdir /project/dist RUN ls -la /project RUN cmake -S /project -B /project/dist -Dmysql-concpp_DIR=/opt/mysql-concpp RUN cmake --build /project/dist RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf && ldconfig CMD ["/project/dist/App", "0.0.0.0", "8080", ".", "12", "mysqlx://root:root@host.docker.internal:33060"]