mirror of https://github.com/OpenVidu/openvidu.git
discover_my_public_ip script added
parent
fb4c4add88
commit
a31f8a975b
|
@ -5,8 +5,10 @@ RUN apt-get update \
|
|||
|
||||
COPY ./configuration-files.sh /tmp/
|
||||
COPY ./entrypoint.sh /usr/local/bin
|
||||
COPY ./discover_my_public_ip.sh /usr/local/bin
|
||||
|
||||
RUN chmod +x /tmp/configuration-files.sh \
|
||||
&& chmod +x /usr/local/bin/entrypoint.sh
|
||||
&& chmod +x /usr/local/bin/entrypoint.sh \
|
||||
&& chmod +x /usr/local/bin/discover_my_public_ip.sh
|
||||
|
||||
CMD /usr/local/bin/entrypoint.sh
|
|
@ -0,0 +1,45 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Check if a txt is a valid ip
|
||||
function valid_ip()
|
||||
{
|
||||
local ip=$1
|
||||
local stat=1
|
||||
|
||||
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
|
||||
OIFS=$IFS
|
||||
IFS='.'
|
||||
ip=($ip)
|
||||
IFS=$OIFS
|
||||
[[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \
|
||||
&& ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
|
||||
stat=$?
|
||||
fi
|
||||
return $stat
|
||||
}
|
||||
|
||||
# Services to get public ip
|
||||
SERVICES=(
|
||||
"curl --silent -sw :%{http_code} ifconfig.me"
|
||||
"curl --silent -sw :%{http_code} ident.me"
|
||||
"curl --silent -sw :%{http_code} icanhazip.com"
|
||||
"curl --silent -sw :%{http_code} ipecho.net/plain"
|
||||
"curl --silent -sw :%{http_code} ipinfo.io/ip"
|
||||
)
|
||||
|
||||
# Get public ip
|
||||
for service in "${SERVICES[@]}"; do
|
||||
RUN_COMMAND=$($service | tr -d '[:space:]')
|
||||
IP=$(echo $RUN_COMMAND | cut -d':' -f1)
|
||||
HTTP_CODE=$(echo $RUN_COMMAND | cut -d':' -f2)
|
||||
|
||||
if [ "$HTTP_CODE" == "200" ]; then
|
||||
if valid_ip "$IP"; then
|
||||
printf "$IP"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
printf "error"
|
||||
exit 0
|
|
@ -5,7 +5,7 @@ DEBUG=${DEBUG:-false}
|
|||
[ "$DEBUG" == "true" ] && set -x
|
||||
|
||||
#Check parameters
|
||||
[[ ! -z "${TURN_PUBLIC_IP}" ]] || export TURN_PUBLIC_IP=$(curl ifconfig.co)
|
||||
[[ ! -z "${TURN_PUBLIC_IP}" ]] || export TURN_PUBLIC_IP=$(/usr/local/bin/discover_my_public_ip.sh)
|
||||
|
||||
echo "TURN public IP: ${TURN_PUBLIC_IP}"
|
||||
|
||||
|
|
|
@ -14,15 +14,15 @@ RUN apt-get update && apt-get install -y \
|
|||
docker.io \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# OpenVidu
|
||||
RUN mkdir -p /opt/openvidu /usr/local/bin/ && \
|
||||
wget -O /opt/openvidu/openvidu-server.jar \
|
||||
https://pro-stripe.openvidu.io/openvidu-server-pro-${OPENVIDU_VERSION}.jar \
|
||||
--tries=0 --read-timeout=20
|
||||
RUN mkdir -p /opt/openvidu /usr/local/bin/
|
||||
COPY openvidu-server.jar /opt/openvidu/openvidu-server.jar
|
||||
|
||||
COPY ./entrypoint.sh /usr/local/bin
|
||||
COPY ./discover_my_public_ip.sh /usr/local/bin
|
||||
|
||||
RUN mkdir -p /opt/openvidu/recordings && \
|
||||
chmod +x /usr/local/bin/entrypoint.sh
|
||||
chmod +x /usr/local/bin/entrypoint.sh && \
|
||||
chmod +x /usr/local/bin/discover_my_public_ip.sh
|
||||
|
||||
WORKDIR /opt/openvidu
|
||||
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Check if a txt is a valid ip
|
||||
function valid_ip()
|
||||
{
|
||||
local ip=$1
|
||||
local stat=1
|
||||
|
||||
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
|
||||
OIFS=$IFS
|
||||
IFS='.'
|
||||
ip=($ip)
|
||||
IFS=$OIFS
|
||||
[[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \
|
||||
&& ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
|
||||
stat=$?
|
||||
fi
|
||||
return $stat
|
||||
}
|
||||
|
||||
# Services to get public ip
|
||||
SERVICES=(
|
||||
"curl --silent -sw :%{http_code} ifconfig.me"
|
||||
"curl --silent -sw :%{http_code} ident.me"
|
||||
"curl --silent -sw :%{http_code} icanhazip.com"
|
||||
"curl --silent -sw :%{http_code} ipecho.net/plain"
|
||||
"curl --silent -sw :%{http_code} ipinfo.io/ip"
|
||||
)
|
||||
|
||||
# Get public ip
|
||||
for service in "${SERVICES[@]}"; do
|
||||
RUN_COMMAND=$($service | tr -d '[:space:]')
|
||||
IP=$(echo $RUN_COMMAND | cut -d':' -f1)
|
||||
HTTP_CODE=$(echo $RUN_COMMAND | cut -d':' -f2)
|
||||
|
||||
if [ "$HTTP_CODE" == "200" ]; then
|
||||
if valid_ip "$IP"; then
|
||||
printf "$IP"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
printf "error"
|
||||
exit 0
|
|
@ -12,7 +12,9 @@ RUN apt-get update && apt-get install -y \
|
|||
# Copy OpenVidu Server
|
||||
COPY openvidu-server.jar /
|
||||
COPY ./entrypoint.sh /usr/local/bin
|
||||
RUN chmod +x /usr/local/bin/entrypoint.sh
|
||||
COPY ./discover_my_public_ip.sh /usr/local/bin
|
||||
RUN chmod +x /usr/local/bin/entrypoint.sh && \
|
||||
chmod +x /usr/local/bin/discover_my_public_ip.sh
|
||||
|
||||
EXPOSE 4443
|
||||
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Check if a txt is a valid ip
|
||||
function valid_ip()
|
||||
{
|
||||
local ip=$1
|
||||
local stat=1
|
||||
|
||||
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
|
||||
OIFS=$IFS
|
||||
IFS='.'
|
||||
ip=($ip)
|
||||
IFS=$OIFS
|
||||
[[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \
|
||||
&& ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
|
||||
stat=$?
|
||||
fi
|
||||
return $stat
|
||||
}
|
||||
|
||||
# Services to get public ip
|
||||
SERVICES=(
|
||||
"curl --silent -sw :%{http_code} ifconfig.me"
|
||||
"curl --silent -sw :%{http_code} ident.me"
|
||||
"curl --silent -sw :%{http_code} icanhazip.com"
|
||||
"curl --silent -sw :%{http_code} ipecho.net/plain"
|
||||
"curl --silent -sw :%{http_code} ipinfo.io/ip"
|
||||
)
|
||||
|
||||
# Get public ip
|
||||
for service in "${SERVICES[@]}"; do
|
||||
RUN_COMMAND=$($service | tr -d '[:space:]')
|
||||
IP=$(echo $RUN_COMMAND | cut -d':' -f1)
|
||||
HTTP_CODE=$(echo $RUN_COMMAND | cut -d':' -f2)
|
||||
|
||||
if [ "$HTTP_CODE" == "200" ]; then
|
||||
if valid_ip "$IP"; then
|
||||
printf "$IP"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
printf "error"
|
||||
exit 0
|
Loading…
Reference in New Issue