From b25231f28584a58bb935a793762fcacc63e3c730 Mon Sep 17 00:00:00 2001 From: William Belcher Date: Thu, 27 Jul 2023 16:33:44 +1000 Subject: [PATCH 1/2] Merge dockerfiles. Update docker build context --- SignallingWebServer/Dockerfile | 13 +++++++++---- .../platform_scripts/bash/docker-build-cirrus.sh | 6 ++++-- .../platform_scripts/bash/docker-start-cirrus.sh | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/SignallingWebServer/Dockerfile b/SignallingWebServer/Dockerfile index 685badbe..70d649c3 100644 --- a/SignallingWebServer/Dockerfile +++ b/SignallingWebServer/Dockerfile @@ -1,25 +1,30 @@ # Use the current Long Term Support (LTS) version of Node.js FROM node:lts - # Copy the signalling server and frontend source code from the build context COPY /SignallingWebServer /SignallingWebServer COPY /Frontend /Frontend - # Install the dependencies for the signalling server and build the frontend RUN SignallingWebServer/platform_scripts/bash/setup.sh --build - # Expose TCP ports 80 and 443 for player WebSocket connections and web server HTTP(S) access EXPOSE 80 EXPOSE 443 # Expose TCP port 8888 for streamer WebSocket connections EXPOSE 8888 +EXPOSE 8888/udp # Expose TCP port 8889 for connections from the SFU EXPOSE 8889 +# Expose TCP port 19302 for connections to Google's stun server +EXPOSE 19302 + # Expose TCP port 9999 for connections from the Matchmaker EXPOSE 9999 +# Expose TCP port 19302 for connections from coturn +EXPOSE 3478 +EXPOSE 3479 + # Set the signalling server as the container's entrypoint -ENTRYPOINT ["/usr/local/bin/node", "/SignallingWebServer/cirrus.js"] +ENTRYPOINT ["/usr/local/bin/node", "/SignallingWebServer/cirrus.js"] \ No newline at end of file diff --git a/SignallingWebServer/platform_scripts/bash/docker-build-cirrus.sh b/SignallingWebServer/platform_scripts/bash/docker-build-cirrus.sh index 6c9d1c96..9474f80d 100755 --- a/SignallingWebServer/platform_scripts/bash/docker-build-cirrus.sh +++ b/SignallingWebServer/platform_scripts/bash/docker-build-cirrus.sh @@ -1,7 +1,9 @@ #!/bin/bash # Copyright Epic Games, Inc. All Rights Reserved. +BASH_LOCATION=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +pushd "${BASH_LOCATION}" > /dev/null # When run from SignallingWebServer/platform_scripts/bash, this uses the SignallingWebServer directory # as the build context so the Cirrus files can be successfully copied into the container image -docker build --network=host -t 'cirrus-webserver:latest' -f ./Dockerfile ../.. - +docker build --network=host -t 'cirrus-webserver:latest' -f "${BASH_LOCATION}/../../Dockerfile" "${BASH_LOCATION}/../../.." \ No newline at end of file diff --git a/SignallingWebServer/platform_scripts/bash/docker-start-cirrus.sh b/SignallingWebServer/platform_scripts/bash/docker-start-cirrus.sh index 7bc6c0a5..9eb0f4e3 100755 --- a/SignallingWebServer/platform_scripts/bash/docker-start-cirrus.sh +++ b/SignallingWebServer/platform_scripts/bash/docker-start-cirrus.sh @@ -27,5 +27,5 @@ else peerConnectionOptions="{\""iceServers\"":[{\""urls\"":[\""stun:"${stunserver}"\""]}]}" fi -docker run --name cirrus_latest --network host --rm --entrypoint /usr/local/bin/node cirrus-webserver /opt/SignallingWebServer/cirrus.js --peerConnectionOptions="${peerConnectionOptions}" --publicIp="${publicip}" +docker run --name cirrus_latest --network host --rm --entrypoint /usr/local/bin/node cirrus-webserver /SignallingWebServer/cirrus.js --peerConnectionOptions="${peerConnectionOptions}" --publicIp="${publicip}" From c6c8028aff742688b452988936acc07d197ad5ec Mon Sep 17 00:00:00 2001 From: William Belcher Date: Thu, 27 Jul 2023 16:37:32 +1000 Subject: [PATCH 2/2] Remove extra dockerfile --- .../platform_scripts/bash/Dockerfile | 35 ------------------- 1 file changed, 35 deletions(-) delete mode 100644 SignallingWebServer/platform_scripts/bash/Dockerfile diff --git a/SignallingWebServer/platform_scripts/bash/Dockerfile b/SignallingWebServer/platform_scripts/bash/Dockerfile deleted file mode 100644 index 48b3d23e..00000000 --- a/SignallingWebServer/platform_scripts/bash/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# Copyright Epic Games, Inc. All Rights Reserved. - -FROM node:latest - -# Copy the signalling server source code to the Docker build context -COPY . /opt/SignallingWebServer - -# Install the dependencies for the signalling server -WORKDIR /opt/SignallingWebServer -RUN npm install . - -# Expose TCP port 80 for player WebSocket connections and web server HTTP access -EXPOSE 80 - -# Expose TCP port 8888 for streamer WebSocket connections -EXPOSE 8888 -EXPOSE 8888/udp - -# Expose port for SFU connections -EXPOSE 8889 - -# Google stun -EXPOSE 19302 - -# Matchmaker -EXPOSE 9999 - -# Turn coturn -EXPOSE 3478 -EXPOSE 3479 - -# Set the signalling server as the container's entrypoint -ENTRYPOINT ["/usr/local/bin/node", "/opt/SignallingWebServer/cirrus.js"] -