From 8ea7ed9afc91596aa249900909c12f6c87cccb19 Mon Sep 17 00:00:00 2001 From: csantosm <4a.santos@gmail.com> Date: Mon, 29 Aug 2022 12:59:59 +0200 Subject: [PATCH] openvidu-call: Added Dockerfile for Java and updated Node entrypoint --- openvidu-call/docker/Dockerfile.java | 35 +++++++++++++++++++ .../docker/{Dockerfile => Dockerfile.node} | 16 +++++---- openvidu-call/docker/java-entrypoint.sh | 15 ++++++++ .../{entrypoint.sh => node-entrypoint.sh} | 2 ++ 4 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 openvidu-call/docker/Dockerfile.java rename openvidu-call/docker/{Dockerfile => Dockerfile.node} (57%) create mode 100644 openvidu-call/docker/java-entrypoint.sh rename openvidu-call/docker/{entrypoint.sh => node-entrypoint.sh} (89%) diff --git a/openvidu-call/docker/Dockerfile.java b/openvidu-call/docker/Dockerfile.java new file mode 100644 index 00000000..8f9be153 --- /dev/null +++ b/openvidu-call/docker/Dockerfile.java @@ -0,0 +1,35 @@ +# Build OpenVidu Call for production +FROM node:lts-alpine3.16 as openvidu-call-build + +WORKDIR /openvidu-call + +ARG BASE_HREF=/ + +COPY . . + +RUN npm install --location=global npm + +# Build OpenVidu Call frontend +RUN rm openvidu-call-front/package-lock.json && \ + # Install frontend dependencies and build it for production + cd openvidu-call-front && npm install && \ + npm run prod:build-java ${BASE_HREF} && \ + cd ../ && rm -rf openvidu-call-front + +FROM maven + +WORKDIR /opt/openvidu-call + +COPY --from=openvidu-call-build /openvidu-call/openvidu-call-back-java . + +# Install backend dependencies and build it for production +RUN mvn clean install package + +# Entrypoint +COPY docker/java-entrypoint.sh /usr/local/bin/entrypoint.sh +RUN cat /usr/local/bin/entrypoint.sh +RUN apt-get install curl && \ + chmod +x /usr/local/bin/entrypoint.sh + +CMD ["/usr/local/bin/entrypoint.sh"] + diff --git a/openvidu-call/docker/Dockerfile b/openvidu-call/docker/Dockerfile.node similarity index 57% rename from openvidu-call/docker/Dockerfile rename to openvidu-call/docker/Dockerfile.node index d67bd39b..5b427b91 100644 --- a/openvidu-call/docker/Dockerfile +++ b/openvidu-call/docker/Dockerfile.node @@ -7,12 +7,14 @@ ARG BASE_HREF=/ COPY . . -# Build OpenVidu call +RUN npm install --location=global npm + +# Build OpenVidu Call frontend RUN rm openvidu-call-front/package-lock.json && \ - # Install openvidu-call-front dependencies and build it for production + # Install frontend dependencies and build it for production cd openvidu-call-front && npm install && \ - cd ../ && npm run build-prod ${BASE_HREF} --prefix openvidu-call-front && \ - rm -rf openvidu-call-front + npm run prod:build ${BASE_HREF} && \ + cd ../ && rm -rf openvidu-call-front FROM node:lts-alpine3.16 @@ -20,12 +22,14 @@ WORKDIR /opt/openvidu-call COPY --from=openvidu-call-build /openvidu-call/openvidu-call-back . -# Install openvidu-call-back dependencies and build it for production +RUN npm install --location=global npm + +# Install backend dependencies and build it for production RUN npm install && \ npm run build # Entrypoint -COPY docker/entrypoint.sh /usr/local/bin +COPY docker/node-entrypoint.sh /usr/local/bin/entrypoint.sh RUN apk add curl && \ chmod +x /usr/local/bin/entrypoint.sh diff --git a/openvidu-call/docker/java-entrypoint.sh b/openvidu-call/docker/java-entrypoint.sh new file mode 100644 index 00000000..8436a856 --- /dev/null +++ b/openvidu-call/docker/java-entrypoint.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +[[ -z "${OPENVIDU_URL}" ]] && export OPENVIDU_URL=$(curl -s ifconfig.co) +[[ -z "${OPENVIDU_SECRET}" ]] && export OPENVIDU_SECRET=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) + +cd /opt/openvidu-call + +[ ! -z "${OPENVIDU_URL}" ] && JAVA_PROPERTIES=" -DOPENVIDU_URL=${OPENVIDU_URL}" +[ ! -z "${OPENVIDU_SECRET}" ] && JAVA_PROPERTIES=" ${JAVA_PROPERTIES} -DOPENVIDU_SECRET=${OPENVIDU_SECRET}" +[ ! -z "${SERVER_PORT}" ] && JAVA_PROPERTIES=" ${JAVA_PROPERTIES} -Dserver.port=${SERVER_PORT}" +[ ! -z "${ADMIN_SECRET}" ] && JAVA_PROPERTIES=" ${JAVA_PROPERTIES} -DADMIN_SECRET=${ADMIN_SECRET}" +[ ! -z "${RECORDING}" ] && JAVA_PROPERTIES=" ${JAVA_PROPERTIES} -DRECORDING=${RECORDING}" +[ ! -z "${SERVER_PORT}" ] && JAVA_PROPERTIES=" ${JAVA_PROPERTIES} -Dserver.port=${SERVER_PORT}" + +java ${JAVA_PROPERTIES} -jar target/openvidu-call-back-java.jar diff --git a/openvidu-call/docker/entrypoint.sh b/openvidu-call/docker/node-entrypoint.sh similarity index 89% rename from openvidu-call/docker/entrypoint.sh rename to openvidu-call/docker/node-entrypoint.sh index 260b3764..8f3e0c82 100644 --- a/openvidu-call/docker/entrypoint.sh +++ b/openvidu-call/docker/node-entrypoint.sh @@ -8,6 +8,8 @@ cat>/opt/openvidu-call/.env<