gradido/Dockerfile.debug
2021-03-17 22:00:13 +01:00

114 lines
3.2 KiB
Docker

#########################################################################################################
# debug build preparation
#########################################################################################################
From conanio/gcc9 as build_debug_preparation
USER root
#RUN apt-get update && \
# apt-get install -y --no-install-recommends gcc g++ && \
# apt-get autoclean && \
# apt-get autoremove && \
# apt-get clean && \
# rm -rf /var/lib/apt/lists/*
ENV DOCKER_WORKDIR="/code"
#VOLUME /root/.conan
RUN mkdir -p ${DOCKER_WORKDIR}
WORKDIR ${DOCKER_WORKDIR}
COPY ./dependencies ./dependencies
COPY ./conanfile.txt ./conanfile.txt
RUN cd dependencies/mariadb-connector-c && \
mkdir build && \
cd build && \
cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSL=OFF ..
RUN mkdir build && \
cd build && \
conan install .. --build=missing -s build_type=Debug
#########################################################################################################
# debug build proto and grpc
#########################################################################################################
From build_debug_preparation as proto_grpc
ENV DOCKER_WORKDIR="/code"
WORKDIR ${DOCKER_WORKDIR}
COPY ./CMakeLists.txt .
RUN cd build && \
cmake -DCMAKE_BUILD_TYPE=Debug .. && \
make -j${CPU_COUNT} protoc grpc_cpp_plugin
#########################################################################################################
# parse proto and gettext
#########################################################################################################
From proto_grpc as proto_parse
ENV DOCKER_WORKDIR="/code"
WORKDIR ${DOCKER_WORKDIR}
RUN mkdir src && \
cd src && \
mkdir cpp
COPY ./src/proto ./src/proto
COPY ./unix_parse_proto.sh .
RUN chmod +x unix_parse_proto.sh && \
./unix_parse_proto.sh
#########################################################################################################
# Build debug
#########################################################################################################
From proto_parse as build_debug
ENV DOCKER_WORKDIR="/code"
USER root
WORKDIR ${DOCKER_WORKDIR}
COPY ./src/cpp ./src/cpp
COPY ./src/LOCALE ./src/LOCALE
COPY ./compile_pot.sh .
COPY ./files_to_translate.txt .
RUN chmod +x compile_pot.sh && \
./compile_pot.sh
RUN cd build && \
cmake -DCMAKE_BUILD_TYPE=Debug .. && \
make -j$(nproc)
CMD bash
#########################################################################################################
# run debug
#########################################################################################################
FROM ubuntu:latest as login_server_debug
WORKDIR "/usr/bin"
#RUN apt-get update && \
# apt-get install -y --no-install-recommends gdb && \
# apt-get autoclean && \
# apt-get autoremove && \
# apt-get clean && \
# rm -rf /var/lib/apt/lists/*
VOLUME /var/log/grd_login
COPY --from=build_debug /code/build/bin/Gradido_LoginServer /usr/bin/
COPY --from=build_debug /code/build/lib/libmariadb.so.3 /usr/lib/
#COPY --from=build_debug /code/build/lib/libPocoNetSSLd.so.64 /usr/lib/libPocoNetSSLd.so.64
RUN chmod +x /usr/bin/Gradido_LoginServer
EXPOSE 1200
EXPOSE 1201
#CMD gdb -ex=r Gradido_LoginServer
CMD Gradido_LoginServer