diff --git a/services/docker-compose.yml b/services/docker-compose.yml index 5c4a233e8..f37f03a1d 100644 --- a/services/docker-compose.yml +++ b/services/docker-compose.yml @@ -1,86 +1,86 @@ version: "3.9" volumes: localstack: services: # tunnelbroker tunnelbroker-server: depends_on: - localstack - rabbitmq build: dockerfile: services/tunnelbroker/Dockerfile context: ../ args: - COMM_TEST_SERVICES=${COMM_TEST_SERVICES} - COMM_SERVICES_SANDBOX=${COMM_SERVICES_SANDBOX} image: commapp/tunnelbroker-server:0.2 ports: - "${COMM_SERVICES_PORT_TUNNELBROKER}:50051" volumes: - $HOME/.aws/config:/root/.aws/config:ro - $HOME/.aws/credentials:/root/.aws/credentials:ro - ./tunnelbroker/tunnelbroker.ini:/root/tunnelbroker/tunnelbroker.ini:ro - - ./tunnelbroker/tunnelbroker-dev.ini:/root/tunnelbroker/tunnelbroker-dev.ini:ro + - ./tunnelbroker/tunnelbroker-sandbox.ini:/root/tunnelbroker/tunnelbroker-sandbox.ini:ro # backup backup-server: depends_on: - localstack build: dockerfile: services/backup/Dockerfile context: ../ args: - COMM_TEST_SERVICES=${COMM_TEST_SERVICES} - COMM_SERVICES_SANDBOX=${COMM_SERVICES_SANDBOX} image: commapp/backup-server:0.1 ports: - "${COMM_SERVICES_PORT_BACKUP}:50051" volumes: - $HOME/.aws/credentials:/root/.aws/credentials:ro # blob blob-server: depends_on: - localstack build: dockerfile: services/blob/Dockerfile context: ../ args: - COMM_TEST_SERVICES=${COMM_TEST_SERVICES} - COMM_SERVICES_SANDBOX=${COMM_SERVICES_SANDBOX} image: commapp/blob-server:0.1 ports: - "${COMM_SERVICES_PORT_BLOB}:50051" volumes: - $HOME/.aws/credentials:/root/.aws/credentials:ro # identity identity-server: depends_on: - localstack build: dockerfile: services/identity/Dockerfile context: ../ image: commapp/identity-server:0.1 ports: - "${COMM_SERVICES_PORT_IDENTITY}:50051" # localstack localstack: image: localstack/localstack hostname: localstack ports: - "4566:4566" environment: - SERVICES=s3,dynamodb - DATA_DIR=/tmp/localstack - HOSTNAME_EXTERNAL=localstack volumes: - localstack:/tmp/localstack # RabbitMQ rabbitmq: image: rabbitmq:3-management hostname: rabbitmq ports: - "5672:5672" - "5671:5671" - "15672:15672" environment: - RABBITMQ_DEFAULT_USER=comm - RABBITMQ_DEFAULT_PASS=comm diff --git a/services/tunnelbroker/Dockerfile b/services/tunnelbroker/Dockerfile index e20309f87..665216038 100644 --- a/services/tunnelbroker/Dockerfile +++ b/services/tunnelbroker/Dockerfile @@ -1,35 +1,49 @@ FROM commapp/services-base:1.3.2 -RUN apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y curl && \ - rm -rf /var/lib/apt/lists/* +ENV PATH=/root/.cargo/bin:$PATH ARG COMM_TEST_SERVICES ARG COMM_SERVICES_SANDBOX ENV COMM_TEST_SERVICES=${COMM_TEST_SERVICES} ENV COMM_SERVICES_SANDBOX=${COMM_SERVICES_SANDBOX} +# Install Curl +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y curl + # Install Rust RUN curl https://sh.rustup.rs -sSf | sh -s -- -y -WORKDIR /transferred/services/tunnelbroker - -COPY services/lib/docker/ scripts/ -COPY services/tunnelbroker/docker/ scripts/ +# Copying of the installation scripts +WORKDIR /transferred/services/tunnelbroker/docker +COPY services/tunnelbroker/docker . # Install SDKs -RUN scripts/install_amqp_cpp.sh -RUN scripts/install_cryptopp.sh -RUN scripts/install_libuv.sh -RUN scripts/install_corrosion.sh +RUN ./install_amqp_cpp.sh +RUN ./install_cryptopp.sh +RUN ./install_libuv.sh -ADD shared/protos /transferred/shared/protos/ -ADD shared/cmake /transferred/shared/cmake/ +# Copying of the shared code +WORKDIR /transferred +COPY services/lib/src/ services/lib/src/ +COPY shared/ shared/ -COPY services/tunnelbroker/ /transferred/services/tunnelbroker/ -COPY services/lib/src/ /transferred/services/lib/src/ +# Copying of the Tunnelbroker code +WORKDIR /transferred/services/tunnelbroker +COPY services/tunnelbroker/ . -RUN scripts/build_service.sh +# Build C++ library gTests by CMake +WORKDIR /transferred/services/tunnelbroker/src/libcpp/test +RUN cmake -B build . && make -C build -j$(nproc) -CMD if [ "$COMM_TEST_SERVICES" -eq 1 ]; then scripts/run_tests.sh; else scripts/run_service.sh; fi +# Build Rust by Cargo +WORKDIR /transferred/services/tunnelbroker +RUN cargo build + +CMD if [ "$COMM_TEST_SERVICES" -eq 1 ];\ + then\ + src/libcpp/test/build/bin/runTests --gtest_filter='-AmqpManager*:DatabaseManager*'\ + && cargo test;\ + else\ + cargo run;\ + fi