generated from Sithas/conan_template
53 lines
1.6 KiB
Docker
53 lines
1.6 KiB
Docker
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
|
|
|
|
ENV LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
|
|
|
|
# Project copy
|
|
WORKDIR /project
|
|
# COPY . /project
|
|
EXPOSE 8080
|
|
|
|
# Build & Run project
|
|
CMD ["bash", "-lc", "\
|
|
set -euo pipefail; \
|
|
test -f /project/CMakeLists.txt; \
|
|
mkdir -p /project/dist; \
|
|
cmake -S /project -B /project/dist -Dmysql-concpp_DIR=/opt/mysql-concpp; \
|
|
cmake --build /project/dist -j\"$(nproc)\"; \
|
|
exec /project/dist/App 0.0.0.0 8080 . 12 mysqlx://root:root@host.docker.internal:33060 \
|
|
"]
|