mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Merge pull request #550 from gradido/login_split_up_Dockerfile
reorganisiere Dockerfiles
This commit is contained in:
commit
b4652d8ca5
12
.github/workflows/test.yml
vendored
12
.github/workflows/test.yml
vendored
@ -50,13 +50,7 @@ jobs:
|
|||||||
##########################################################################
|
##########################################################################
|
||||||
- name: login server | Build `release` image
|
- name: login server | Build `release` image
|
||||||
run: |
|
run: |
|
||||||
docker build --target release -t "gradido/login_server:release" -f ./login_server/Dockerfile login_server/
|
docker build -t "gradido/login_server:release" -f ./login_server/Dockerfile login_server/
|
||||||
#docker save "gradido/login_server:test" > /tmp/login_server.tar
|
|
||||||
#- name: Upload Artifact
|
|
||||||
# uses: actions/upload-artifact@v2
|
|
||||||
#with:
|
|
||||||
# name: docker-login-server-test
|
|
||||||
#path: /tmp/login_server.tar
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# JOB: DOCKER BUILD TEST COMMUNITY SERVER ####################################
|
# JOB: DOCKER BUILD TEST COMMUNITY SERVER ####################################
|
||||||
@ -251,7 +245,7 @@ jobs:
|
|||||||
##########################################################################
|
##########################################################################
|
||||||
- name: login server | Build `test` image
|
- name: login server | Build `test` image
|
||||||
run: |
|
run: |
|
||||||
docker build --target test -t "gradido/login_server:test" -f ./login_server/Dockerfile login_server/
|
docker build -t "gradido/login_server:test" -f ./login_server/Dockerfiles/ubuntu/Dockerfile.test login_server/
|
||||||
##########################################################################
|
##########################################################################
|
||||||
# UNIT TESTS BACKEND LOGIN-SERVER #######################################
|
# UNIT TESTS BACKEND LOGIN-SERVER #######################################
|
||||||
##########################################################################
|
##########################################################################
|
||||||
@ -300,7 +294,7 @@ jobs:
|
|||||||
run: echo "::set-output name=id::$(docker network ls | grep github_network | awk '{ print $1 }')"
|
run: echo "::set-output name=id::$(docker network ls | grep github_network | awk '{ print $1 }')"
|
||||||
id: network
|
id: network
|
||||||
- name: Start Login-Server
|
- name: Start Login-Server
|
||||||
run: docker run --network ${{ steps.network.outputs.id }} --name=login-server -d gradido/login_server:default
|
run: docker run --network ${{ steps.network.outputs.id }} --name=login-server -d gradido/login_server:with-config
|
||||||
- name: get login-server container id
|
- name: get login-server container id
|
||||||
run: echo "::set-output name=id::$(docker container ls | grep login_server | awk '{ print $1 }')"
|
run: echo "::set-output name=id::$(docker container ls | grep login_server | awk '{ print $1 }')"
|
||||||
id: login_server_container
|
id: login_server_container
|
||||||
|
|||||||
@ -26,8 +26,7 @@ services:
|
|||||||
#########################################################
|
#########################################################
|
||||||
login-server:
|
login-server:
|
||||||
build:
|
build:
|
||||||
target: login_server_alpine_debug
|
dockerfile: Dockerfiles/alpine/Dockerfile.debug
|
||||||
dockerfile: Dockerfile.alpine-debug
|
|
||||||
security_opt:
|
security_opt:
|
||||||
- seccomp:unconfined
|
- seccomp:unconfined
|
||||||
cap_add:
|
cap_add:
|
||||||
|
|||||||
@ -26,7 +26,7 @@ services:
|
|||||||
login-server:
|
login-server:
|
||||||
build:
|
build:
|
||||||
context: ./login_server/
|
context: ./login_server/
|
||||||
target: test
|
dockerfile: Dockerfiles/ubuntu/Dockerfile.test
|
||||||
security_opt:
|
security_opt:
|
||||||
- seccomp:unconfined
|
- seccomp:unconfined
|
||||||
cap_add:
|
cap_add:
|
||||||
|
|||||||
@ -55,7 +55,6 @@ services:
|
|||||||
login-server:
|
login-server:
|
||||||
build:
|
build:
|
||||||
context: ./login_server/
|
context: ./login_server/
|
||||||
target: login_server
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- mariadb
|
- mariadb
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@ -1,85 +1,4 @@
|
|||||||
|
|
||||||
#########################################################################################################
|
|
||||||
# Prepare debug
|
|
||||||
#########################################################################################################
|
|
||||||
FROM gradido/login_dependencies:gcc9-debug-3 as prepare_debug
|
|
||||||
|
|
||||||
ENV DOCKER_WORKDIR="/code"
|
|
||||||
WORKDIR ${DOCKER_WORKDIR}
|
|
||||||
|
|
||||||
RUN echo '/usr/local/lib' >> /etc/ld.so.conf && ldconfig
|
|
||||||
|
|
||||||
COPY ./CMakeLists.txt.lib ./CMakeLists.txt
|
|
||||||
RUN ln -s /usr/local/googletest ./googletest
|
|
||||||
COPY ./src ./src
|
|
||||||
COPY ./cmake/CodeCoverage.cmake ./cmake/CodeCoverage.cmake
|
|
||||||
COPY ./dependencies/cmake-modules ./dependencies/cmake-modules
|
|
||||||
COPY ./dependencies/spirit-po ./dependencies/spirit-po
|
|
||||||
COPY ./dependencies/tinf ./dependencies/tinf
|
|
||||||
COPY ./scripts ./scripts
|
|
||||||
|
|
||||||
|
|
||||||
#########################################################################################################
|
|
||||||
# Install Coverage tool
|
|
||||||
#########################################################################################################
|
|
||||||
FROM prepare_debug as coverage
|
|
||||||
|
|
||||||
|
|
||||||
RUN apt-get update && \
|
|
||||||
apt-get install -y --no-install-recommends python3-pip && \
|
|
||||||
apt-get autoclean && \
|
|
||||||
apt-get autoremove && \
|
|
||||||
apt-get clean && \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
RUN pip3 install gcovr setuptools wheel && \
|
|
||||||
pip3 install fastcov
|
|
||||||
|
|
||||||
|
|
||||||
#########################################################################################################
|
|
||||||
# Build test
|
|
||||||
#########################################################################################################
|
|
||||||
FROM coverage as test
|
|
||||||
|
|
||||||
ENV DOCKER_WORKDIR="/code"
|
|
||||||
WORKDIR ${DOCKER_WORKDIR}
|
|
||||||
|
|
||||||
|
|
||||||
RUN if [ ! -d "./build_cov" ] ; then mkdir build_cov; fi
|
|
||||||
|
|
||||||
RUN cd build_cov && \
|
|
||||||
cmake -DCMAKE_BUILD_TYPE=Debug -DCOLLECT_COVERAGE_DATA=ON -DCOVERAGE_TOOL=fastcov .. && \
|
|
||||||
make -j$(nproc) Gradido_LoginServer_Test
|
|
||||||
|
|
||||||
#RUN chmod +x build_cov/bin/Gradido_LoginServer_Test
|
|
||||||
#CMD gdb -ex run ./build_cov/bin/Gradido_LoginServer_Test
|
|
||||||
#CMD ./build_cov/bin/Gradido_LoginServer_Test
|
|
||||||
|
|
||||||
#ENTRYPOINT make -C build_cov coverage
|
|
||||||
CMD cd build_cov && make coverage && \
|
|
||||||
if [ ! -d "./coverage" ] ; then mkdir coverage; fi && \
|
|
||||||
cp coverage.info ./coverage/
|
|
||||||
|
|
||||||
#########################################################################################################
|
|
||||||
# Build debug
|
|
||||||
#########################################################################################################
|
|
||||||
FROM prepare_debug as debug
|
|
||||||
|
|
||||||
ENV DOCKER_WORKDIR="/code"
|
|
||||||
WORKDIR ${DOCKER_WORKDIR}
|
|
||||||
|
|
||||||
RUN mkdir build && \
|
|
||||||
cd build && \
|
|
||||||
cmake -DCMAKE_BUILD_TYPE=Debug .. && \
|
|
||||||
make -j$(nproc) Gradido_LoginServer
|
|
||||||
|
|
||||||
RUN cd scripts && \
|
|
||||||
chmod +x compile_pot.sh && \
|
|
||||||
./compile_pot.sh
|
|
||||||
|
|
||||||
RUN chmod +x build/bin/Gradido_LoginServer
|
|
||||||
ENTRYPOINT ["build/bin/Gradido_LoginServer"]
|
|
||||||
|
|
||||||
#########################################################################################################
|
#########################################################################################################
|
||||||
# Build release
|
# Build release
|
||||||
#########################################################################################################
|
#########################################################################################################
|
||||||
|
|||||||
@ -1,3 +1,14 @@
|
|||||||
|
# Login-Server Build dependencies for alpine
|
||||||
|
# Uploaded to hub.docker.com with the tag:
|
||||||
|
# gradido/login_dependencies:alpine-debug-3 for debug build
|
||||||
|
# and
|
||||||
|
# gradido/login_dependencies:alpine-release-3 for release build
|
||||||
|
# Update tag when dependencies are added or removed
|
||||||
|
|
||||||
|
# Control Build Type with ARG BUILD_TYPE
|
||||||
|
# Valid values do you find here: https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html
|
||||||
|
# Default is set to Debug
|
||||||
|
|
||||||
|
|
||||||
##### BUILD-ENV #####
|
##### BUILD-ENV #####
|
||||||
FROM alpine:3.13.5 as alpine-build
|
FROM alpine:3.13.5 as alpine-build
|
||||||
49
login_server/Dockerfiles/alpine/Dockerfile.release
Normal file
49
login_server/Dockerfiles/alpine/Dockerfile.release
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
|
||||||
|
#########################################################################################################
|
||||||
|
# Build release
|
||||||
|
#########################################################################################################
|
||||||
|
FROM gradido/login_dependencies:alpine-release-3 as release
|
||||||
|
|
||||||
|
ENV DOCKER_WORKDIR="/code"
|
||||||
|
WORKDIR ${DOCKER_WORKDIR}
|
||||||
|
|
||||||
|
COPY ./CMakeLists.txt.lib ./CMakeLists.txt
|
||||||
|
COPY ./src ./src
|
||||||
|
RUN ln -s /usr/local/googletest ./googletest
|
||||||
|
COPY ./dependencies/cmake-modules ./dependencies/cmake-modules
|
||||||
|
COPY ./dependencies/spirit-po ./dependencies/spirit-po
|
||||||
|
COPY ./dependencies/tinf ./dependencies/tinf
|
||||||
|
COPY ./scripts ./scripts
|
||||||
|
|
||||||
|
RUN mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release .. && \
|
||||||
|
make -j$(nproc) Gradido_LoginServer
|
||||||
|
|
||||||
|
RUN cd scripts && \
|
||||||
|
chmod +x compile_pot.sh && \
|
||||||
|
./compile_pot.sh
|
||||||
|
|
||||||
|
|
||||||
|
#########################################################################################################
|
||||||
|
# run release
|
||||||
|
#########################################################################################################
|
||||||
|
#From alpine:latest as login_server
|
||||||
|
FROM alpine:3.13.5 as login_server
|
||||||
|
|
||||||
|
USER root
|
||||||
|
WORKDIR "/usr/bin"
|
||||||
|
|
||||||
|
COPY --from=release /code/build/bin/Gradido_LoginServer /usr/bin/
|
||||||
|
|
||||||
|
COPY --from=release /usr/local/lib/mariadb/libmariadb.so.3 /usr/local/lib/
|
||||||
|
COPY --from=release /usr/local/lib/libPoco* /usr/local/lib/
|
||||||
|
COPY --from=release /usr/local/lib/libproto* /usr/local/lib/
|
||||||
|
COPY --from=release /usr/lib/libsodium.so.23 /usr/lib/
|
||||||
|
COPY --from=release /usr/lib/libstdc++.so.6 /usr/lib/
|
||||||
|
COPY --from=release /usr/lib/libgcc_s.so.1 /usr/lib/
|
||||||
|
|
||||||
|
|
||||||
|
RUN chmod +x /usr/bin/Gradido_LoginServer
|
||||||
|
ENTRYPOINT ["/usr/bin/Gradido_LoginServer"]
|
||||||
|
#CMD Gradido_LoginServer
|
||||||
@ -1,4 +1,9 @@
|
|||||||
|
|
||||||
|
|
||||||
|
# Login Server build which contain the config file, found on docker hub with tag:
|
||||||
|
# gradido/login_server:with-config
|
||||||
|
# Used for community-server tests on staging
|
||||||
|
|
||||||
#########################################################################################################
|
#########################################################################################################
|
||||||
# Build release
|
# Build release
|
||||||
#########################################################################################################
|
#########################################################################################################
|
||||||
39
login_server/Dockerfiles/ubuntu/Dockerfile.debug
Normal file
39
login_server/Dockerfiles/ubuntu/Dockerfile.debug
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
|
||||||
|
#########################################################################################################
|
||||||
|
# Prepare debug
|
||||||
|
#########################################################################################################
|
||||||
|
FROM gradido/login_dependencies:gcc9-debug-3 as prepare_debug
|
||||||
|
|
||||||
|
ENV DOCKER_WORKDIR="/code"
|
||||||
|
WORKDIR ${DOCKER_WORKDIR}
|
||||||
|
|
||||||
|
RUN echo '/usr/local/lib' >> /etc/ld.so.conf && ldconfig
|
||||||
|
|
||||||
|
COPY ./CMakeLists.txt.lib ./CMakeLists.txt
|
||||||
|
RUN ln -s /usr/local/googletest ./googletest
|
||||||
|
COPY ./src ./src
|
||||||
|
COPY ./cmake/CodeCoverage.cmake ./cmake/CodeCoverage.cmake
|
||||||
|
COPY ./dependencies/cmake-modules ./dependencies/cmake-modules
|
||||||
|
COPY ./dependencies/spirit-po ./dependencies/spirit-po
|
||||||
|
COPY ./dependencies/tinf ./dependencies/tinf
|
||||||
|
COPY ./scripts ./scripts
|
||||||
|
|
||||||
|
|
||||||
|
#########################################################################################################
|
||||||
|
# Build debug
|
||||||
|
#########################################################################################################
|
||||||
|
FROM prepare_debug as debug
|
||||||
|
|
||||||
|
ENV DOCKER_WORKDIR="/code"
|
||||||
|
WORKDIR ${DOCKER_WORKDIR}
|
||||||
|
|
||||||
|
RUN mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Debug ..
|
||||||
|
|
||||||
|
RUN cd scripts && \
|
||||||
|
chmod +x compile_pot.sh && \
|
||||||
|
./compile_pot.sh
|
||||||
|
|
||||||
|
CMD cd build && cmake .. && make -j$(nproc) Gradido_LoginServer && ./bin/Gradido_LoginServer
|
||||||
|
|
||||||
@ -1,3 +1,12 @@
|
|||||||
|
# Login-Server Build dependencies for ubuntu
|
||||||
|
# Uploaded to hub.docker.com with the tag:
|
||||||
|
# gradido/login_dependencies:gcc9-debug-3 for debug build
|
||||||
|
# Update tag when dependencies are added or removed
|
||||||
|
|
||||||
|
# Control Build Type with ARG BUILD_TYPE
|
||||||
|
# Valid values do you find here: https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html
|
||||||
|
# Default is set to Debug
|
||||||
|
|
||||||
##### BUILD-ENV #####
|
##### BUILD-ENV #####
|
||||||
FROM gcc:9 as gcc9_build
|
FROM gcc:9 as gcc9_build
|
||||||
|
|
||||||
49
login_server/Dockerfiles/ubuntu/Dockerfile.release
Normal file
49
login_server/Dockerfiles/ubuntu/Dockerfile.release
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
|
||||||
|
#########################################################################################################
|
||||||
|
# Build release
|
||||||
|
#########################################################################################################
|
||||||
|
FROM gradido/login_dependencies:ubuntu-release-3 as release
|
||||||
|
|
||||||
|
ENV DOCKER_WORKDIR="/code"
|
||||||
|
WORKDIR ${DOCKER_WORKDIR}
|
||||||
|
|
||||||
|
COPY ./CMakeLists.txt.lib ./CMakeLists.txt
|
||||||
|
COPY ./src ./src
|
||||||
|
RUN ln -s /usr/local/googletest ./googletest
|
||||||
|
COPY ./dependencies/cmake-modules ./dependencies/cmake-modules
|
||||||
|
COPY ./dependencies/spirit-po ./dependencies/spirit-po
|
||||||
|
COPY ./dependencies/tinf ./dependencies/tinf
|
||||||
|
COPY ./scripts ./scripts
|
||||||
|
|
||||||
|
RUN mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release .. && \
|
||||||
|
make -j$(nproc) Gradido_LoginServer
|
||||||
|
|
||||||
|
RUN cd scripts && \
|
||||||
|
chmod +x compile_pot.sh && \
|
||||||
|
./compile_pot.sh
|
||||||
|
|
||||||
|
|
||||||
|
#########################################################################################################
|
||||||
|
# run release
|
||||||
|
#########################################################################################################
|
||||||
|
#From alpine:latest as login_server
|
||||||
|
FROM ubuntu:latest as login_server
|
||||||
|
|
||||||
|
USER root
|
||||||
|
WORKDIR "/usr/bin"
|
||||||
|
|
||||||
|
COPY --from=release /code/build/bin/Gradido_LoginServer /usr/bin/
|
||||||
|
|
||||||
|
COPY --from=release /usr/local/lib/mariadb/libmariadb.so.3 /usr/local/lib/
|
||||||
|
COPY --from=release /usr/local/lib/libPoco* /usr/local/lib/
|
||||||
|
COPY --from=release /usr/local/lib/libproto* /usr/local/lib/
|
||||||
|
COPY --from=release /usr/lib/libsodium.so.23 /usr/lib/
|
||||||
|
COPY --from=release /usr/lib/libstdc++.so.6 /usr/lib/
|
||||||
|
COPY --from=release /usr/lib/libgcc_s.so.1 /usr/lib/
|
||||||
|
|
||||||
|
|
||||||
|
RUN chmod +x /usr/bin/Gradido_LoginServer
|
||||||
|
ENTRYPOINT ["/usr/bin/Gradido_LoginServer"]
|
||||||
|
#CMD Gradido_LoginServer
|
||||||
58
login_server/Dockerfiles/ubuntu/Dockerfile.test
Normal file
58
login_server/Dockerfiles/ubuntu/Dockerfile.test
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
|
||||||
|
#########################################################################################################
|
||||||
|
# Prepare debug
|
||||||
|
#########################################################################################################
|
||||||
|
FROM gradido/login_dependencies:gcc9-debug-3 as prepare_debug
|
||||||
|
|
||||||
|
ENV DOCKER_WORKDIR="/code"
|
||||||
|
WORKDIR ${DOCKER_WORKDIR}
|
||||||
|
|
||||||
|
RUN echo '/usr/local/lib' >> /etc/ld.so.conf && ldconfig
|
||||||
|
|
||||||
|
COPY ./CMakeLists.txt.lib ./CMakeLists.txt
|
||||||
|
RUN ln -s /usr/local/googletest ./googletest
|
||||||
|
COPY ./src ./src
|
||||||
|
COPY ./cmake/CodeCoverage.cmake ./cmake/CodeCoverage.cmake
|
||||||
|
COPY ./dependencies/cmake-modules ./dependencies/cmake-modules
|
||||||
|
COPY ./dependencies/spirit-po ./dependencies/spirit-po
|
||||||
|
COPY ./dependencies/tinf ./dependencies/tinf
|
||||||
|
COPY ./scripts ./scripts
|
||||||
|
|
||||||
|
|
||||||
|
#########################################################################################################
|
||||||
|
# Install Coverage tool
|
||||||
|
#########################################################################################################
|
||||||
|
FROM prepare_debug as coverage
|
||||||
|
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y --no-install-recommends python3-pip && \
|
||||||
|
apt-get autoclean && \
|
||||||
|
apt-get autoremove && \
|
||||||
|
apt-get clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
# fastcov need gcovr to work
|
||||||
|
RUN pip3 install gcovr setuptools wheel && \
|
||||||
|
pip3 install fastcov
|
||||||
|
|
||||||
|
|
||||||
|
#########################################################################################################
|
||||||
|
# Build test
|
||||||
|
#########################################################################################################
|
||||||
|
FROM coverage as test
|
||||||
|
|
||||||
|
ENV DOCKER_WORKDIR="/code"
|
||||||
|
WORKDIR ${DOCKER_WORKDIR}
|
||||||
|
|
||||||
|
|
||||||
|
RUN if [ ! -d "./build_cov" ] ; then mkdir build_cov; fi
|
||||||
|
|
||||||
|
RUN cd build_cov && \
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Debug -DCOLLECT_COVERAGE_DATA=ON -DCOVERAGE_TOOL=fastcov .. && \
|
||||||
|
make -j$(nproc) Gradido_LoginServer_Test
|
||||||
|
|
||||||
|
#ENTRYPOINT make -C build_cov coverage
|
||||||
|
CMD cd build_cov && make coverage && \
|
||||||
|
if [ ! -d "./coverage" ] ; then mkdir coverage; fi && \
|
||||||
|
cp coverage.info ./coverage/
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user