From 326bfa9f448aadfa3972468ef108d6ac332c08de Mon Sep 17 00:00:00 2001 From: madt1m Date: Thu, 9 Jan 2020 22:34:56 +0100 Subject: [PATCH 1/3] Backend server docker developed. Must be tested. --- core/Dockerfile | 0 core/server/Dockerfile | 66 +++++++++++++++++++++++++++++++++++++ core/server/docker_entry.sh | 4 +++ docker-compose.yml | 21 +++++++++--- 4 files changed, 86 insertions(+), 5 deletions(-) delete mode 100644 core/Dockerfile create mode 100644 core/server/Dockerfile create mode 100644 core/server/docker_entry.sh diff --git a/core/Dockerfile b/core/Dockerfile deleted file mode 100644 index e69de29..0000000 diff --git a/core/server/Dockerfile b/core/server/Dockerfile new file mode 100644 index 0000000..946167e --- /dev/null +++ b/core/server/Dockerfile @@ -0,0 +1,66 @@ +FROM zouzias/boost:1.67.0 + +RUN apt-get -y update \ + && apt-get -y upgrade + +RUN apt-get install -y \ + openssh-server \ + g++ \ + cmake \ + git + +#installing the mongoc dependencies and driver +RUN apt-get install -y \ + pkg-config \ + libssl-dev \ + libsasl2-dev +RUN cd ~ \ + && wget https://github.com/mongodb/mongo-c-driver/releases/download/1.7.0/mongo-c-driver-1.7.0.tar.gz \ + && tar xzf mongo-c-driver-1.7.0.tar.gz \ + && cd mongo-c-driver-1.7.0 \ + && ./configure --disable-automatic-init-and-cleanup \ + && make \ + && make install \ + && cd ~ \ + && rm mongo-c-driver-1.7.0.tar.gz \ + && rm -rf mongo-c-driver-1.4.2 + +#installing mongocxx driver - connects c++ to mongo +RUN cd ~ \ + && wget https://github.com/mongodb/mongo-cxx-driver/archive/r3.1.4.tar.gz \ + && tar -xzf r3.1.4.tar.gz \ + && cd mongo-cxx-driver-r3.1.4/build \ + && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. \ + && make EP_mnmlstc_core \ + && make \ + && make install \ + && cd ~ \ + && rm r3.1.4.tar.gz \ + && rm -rf mongo-cxx-driver-r3.1.4 + +# install additional boost +RUN cd /usr/include/boost \ + && ./bootstrap.sh \ + && ./bjam install --with-filesystem --with-thread --with-system --with-date_time --with-random link=static runtime-link=shared threading=multi + +# install protobuf +RUN cd ~ \ + && apt-get install -y autoconf automake libtool curl make g++ unzip \ + && wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-cpp-3.6.1.tar.gz \ + && cd protobuf-3.6.1 \ + && ./autogen.sh \ + && ./configure \ + && make \ + && make check \ + && make install \ + && ldconfig + +# Copy files inside workdir +WORKDIR /server + +COPY . /server + +RUN rm /server/CMakeCache.txt + +# Build and run server +CMD ./docker_entry.sh diff --git a/core/server/docker_entry.sh b/core/server/docker_entry.sh new file mode 100644 index 0000000..4a20b34 --- /dev/null +++ b/core/server/docker_entry.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +# Launching the server +cmake . && make && ./core diff --git a/docker-compose.yml b/docker-compose.yml index efd5871..da0b49b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,9 +1,7 @@ version: '3' services: db: - build: - context: . - dockerfile: mongo.dockerfile + image: mongo:latest expose: - "27017" ports: @@ -32,10 +30,23 @@ services: depends_on: - reader ports: - - 4200:80 + - 80:4200 + networks: + - pds-network + backend: + restart: always + container_name: backend + build: + context: ./core/server + dockerfile: Dockerfile + depends_on: + - db + expose: + - "12345" + ports: + - 12345:12345 networks: - pds-network - networks: pds-network: driver: bridge From 82ac8c076af56f4cc3fbe48d0b9399e42c631956 Mon Sep 17 00:00:00 2001 From: madt1m Date: Thu, 9 Jan 2020 22:51:19 +0100 Subject: [PATCH 2/3] C++ now installs protobuf, boost and more. Also, fixing issue with Angular docker not able to watch for changes on volume --- core/server/Dockerfile | 1 + docker-compose.yml | 2 ++ frontend/paper/Dockerfile | 3 --- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/server/Dockerfile b/core/server/Dockerfile index 946167e..91e9284 100644 --- a/core/server/Dockerfile +++ b/core/server/Dockerfile @@ -47,6 +47,7 @@ RUN cd /usr/include/boost \ RUN cd ~ \ && apt-get install -y autoconf automake libtool curl make g++ unzip \ && wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-cpp-3.6.1.tar.gz \ + && tar zxvf protobuf-cpp-3.6.1.tar.gz \ && cd protobuf-3.6.1 \ && ./autogen.sh \ && ./configure \ diff --git a/docker-compose.yml b/docker-compose.yml index da0b49b..d376e69 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -31,6 +31,8 @@ services: - reader ports: - 80:4200 + volumes: + - .:/app networks: - pds-network backend: diff --git a/frontend/paper/Dockerfile b/frontend/paper/Dockerfile index 719d110..02b7da1 100644 --- a/frontend/paper/Dockerfile +++ b/frontend/paper/Dockerfile @@ -17,8 +17,5 @@ COPY package.json /app/package.json RUN npm install RUN npm install -g @angular/cli@7.3.9 -# add app -COPY . /app - # start app CMD ng serve --host 0.0.0.0 From fd43974100942f17b54c627dc34792f85aa84a61 Mon Sep 17 00:00:00 2001 From: madt1m Date: Thu, 9 Jan 2020 23:14:27 +0100 Subject: [PATCH 3/3] Now with backend-free docker-compose! --- docker-compose-no-backend.yml | 41 +++++++++++++++++++++++++++++++++++ docker-compose.yml | 2 ++ mongo.dockerfile | 1 - 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 docker-compose-no-backend.yml delete mode 100644 mongo.dockerfile diff --git a/docker-compose-no-backend.yml b/docker-compose-no-backend.yml new file mode 100644 index 0000000..aa11a50 --- /dev/null +++ b/docker-compose-no-backend.yml @@ -0,0 +1,41 @@ +version: '3' +services: + db: + image: mongo:latest + expose: + - "27017" + ports: + - 27017:27017 + networks: + - pds-network + reader: + restart: always + container_name: reader + build: + context: ./frontend/reader + dockerfile: Dockerfile + depends_on: + - db + expose: + - "8000" + ports: + - 8000:8000 + networks: + - pds-network + gui: + restart: always + container_name: gui + build: + context: ./frontend/paper + dockerfile: Dockerfile + depends_on: + - reader + ports: + - 80:4200 + volumes: + - .:/app + networks: + - pds-network +networks: + pds-network: + driver: bridge diff --git a/docker-compose.yml b/docker-compose.yml index d376e69..2032050 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,6 +19,8 @@ services: - db expose: - "8000" + ports: + - 8000:8000 networks: - pds-network gui: diff --git a/mongo.dockerfile b/mongo.dockerfile deleted file mode 100644 index 74b12bc..0000000 --- a/mongo.dockerfile +++ /dev/null @@ -1 +0,0 @@ -FROM mongo