mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
132 lines
4.2 KiB
Docker
132 lines
4.2 KiB
Docker
#########################################################################################################
|
|
# Build protoc
|
|
#########################################################################################################
|
|
FROM gcc:7.5 as protoc_build
|
|
RUN git clone --recurse-submodules https://github.com/protocolbuffers/protobuf.git
|
|
WORKDIR /protobuf
|
|
|
|
RUN git checkout v3.9.1
|
|
RUN ./autogen.sh
|
|
RUN ./configure --enable-static=yes
|
|
RUN make -j$(grep processor /proc/cpuinfo | wc -l)
|
|
RUN make check
|
|
|
|
CMD ["./protobuf"]
|
|
|
|
#########################################################################################################
|
|
# debug build preparation
|
|
#########################################################################################################
|
|
|
|
From conanio/gcc7 as debug_preparation
|
|
|
|
ENV DOCKER_WORKDIR="/code"
|
|
|
|
USER root
|
|
|
|
COPY --from=protoc_build /protobuf/src/.libs/protoc /usr/bin/
|
|
COPY --from=protoc_build /protobuf/src/.libs/libprotobuf.so.20.0.1 /usr/lib/libprotobuf.so.20
|
|
COPY --from=protoc_build /protobuf/src/.libs/libprotoc.so.20.0.1 /usr/lib/libprotoc.so.20
|
|
COPY --from=protoc_build /protobuf/src/google/protobuf/*.proto /usr/include/google/protobuf/
|
|
COPY --from=protoc_build /protobuf/src/google/protobuf/*.h /usr/include/google/protobuf/
|
|
|
|
#VOLUME /root/.conan
|
|
|
|
RUN mkdir -p ${DOCKER_WORKDIR}
|
|
WORKDIR ${DOCKER_WORKDIR}
|
|
|
|
COPY ./dependencies ./dependencies
|
|
COPY ./conanfile.txt ./conanfile.txt
|
|
|
|
RUN ls -la
|
|
RUN cd dependencies/iroha-ed25519 && \
|
|
ls -la && \
|
|
mkdir build && \
|
|
cd build && \
|
|
cmake .. -DCMAKE_BUILD_TYPE=Debug -DEDIMPL=ref10 -DHASH=sha2_sphlib -DRANDOM=bcryptgen -DBUILD=STATIC && \
|
|
make -j$(grep processor /proc/cpuinfo | wc -l)
|
|
|
|
RUN cd dependencies/mariadb-connector-c && \
|
|
mkdir build && \
|
|
cd build && \
|
|
cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSL=OFF ..
|
|
|
|
|
|
#RUN chmod +x compile_proto.sh
|
|
#RUN chmod +x compile_pot.sh
|
|
#RUN ls -la
|
|
#RUN ./compile_pot.sh
|
|
#RUN ./compile_proto.sh
|
|
RUN mkdir build && \
|
|
cd build && \
|
|
conan install .. --build=missing -s build_type=Debug
|
|
|
|
|
|
|
|
#########################################################################################################
|
|
# Build debug
|
|
#########################################################################################################
|
|
From debug_preparation as debug
|
|
|
|
ENV DOCKER_WORKDIR="/code"
|
|
|
|
USER root
|
|
#VOLUME /root/.conan
|
|
|
|
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/*
|
|
|
|
#COPY --from=protoc_build /protobuf/src/.libs/libprotobuf.so.20.0.1 /usr/lib/libprotobuf.so.20
|
|
#COPY --from=protoc_build /protobuf/src/google/protobuf/*.h /usr/include/google/protobuf/
|
|
|
|
|
|
#COPY --from=debug_preparation /code /code
|
|
#COPY --from=debug_preparation /home/conan /home/conan
|
|
#RUN ls -la /home/conan/.conan
|
|
COPY . .
|
|
WORKDIR ${DOCKER_WORKDIR}
|
|
|
|
#RUN ls -la
|
|
#RUN cat build/conanbuildinfo.cmake
|
|
RUN chmod +x compile_proto.sh
|
|
RUN chmod +x compile_pot.sh
|
|
#RUN ls -la
|
|
RUN ./compile_pot.sh
|
|
RUN ./compile_proto.sh
|
|
RUN cd build && \
|
|
cmake -DCMAKE_BUILD_TYPE=Debug .. && \
|
|
make -j$(grep processor /proc/cpuinfo | wc -l)
|
|
|
|
|
|
#########################################################################################################
|
|
# 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=debug /code/build/bin/Gradido_LoginServer /usr/bin/
|
|
COPY --from=debug /code/build/lib/libmariadb.so.3 /usr/lib/
|
|
#COPY start_after_mysql.sh .
|
|
RUN chmod +x /usr/bin/Gradido_LoginServer
|
|
EXPOSE 1200
|
|
EXPOSE 1201
|
|
#ENTRYPOINT ["/usr/bin/Gradido_LoginServer"]
|
|
# Wait on mariadb to started
|
|
#CMD ["sleep 5", "/usr/bin/Gradido_LoginServer"]
|
|
#RUN chmod +x ./start_after_mysql.sh
|
|
#ENTRYPOINT ["/usr/bin/Gradido_LoginServer"]
|
|
#CMD gdb -ex=r Gradido_LoginServer
|
|
CMD Gradido_LoginServer |