working traefik
This commit is contained in:
183
app/sbin/start/ODOO_18
Executable file
183
app/sbin/start/ODOO_18
Executable file
@@ -0,0 +1,183 @@
|
||||
#/bin/bash
|
||||
echo "Start container ODOO_18: $UUID""
|
||||
|
||||
export PATH=/4SERVER/sbin:$PATH
|
||||
SERVER_IP=$( ip -4 addr show eth0 | awk '/inet/ {print $2}' | cut -d/ -f1 )
|
||||
echo "SERVER_IP $SERVER_IP"
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
exit 0
|
||||
else
|
||||
BASEURL="/4SERVER/data/$1/"
|
||||
fi
|
||||
|
||||
|
||||
DOMAIN="$UUID.odoo4projects.com $DOMAIN"
|
||||
CLIENT_DOMAIN=$(cat ${BASEURL}etc/domain)
|
||||
echo "CLIENT_DOMAIN: $CLIENT_DOMAIN"
|
||||
echo ""
|
||||
if [[ -n "$CLIENT_DOMAIN" ]]; then
|
||||
DOMAIN+=" www.$CLIENT_DOMAIN $CLIENT_DOMAIN"
|
||||
fi
|
||||
echo "Domains: $DOMAIN"
|
||||
|
||||
|
||||
NEW=0
|
||||
if [ ! -d "$BASEURL" ]; then
|
||||
echo "NEW CLIENT !!!"
|
||||
echo "Wait for DNS to update"
|
||||
|
||||
WAIT=true
|
||||
START_TIME=$(date +%s)
|
||||
while $WAIT; do
|
||||
nslookup "$1.odoo4projects.com" > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Domain $DOMAIN resolved successfully."
|
||||
WAIT=false
|
||||
fi
|
||||
|
||||
CURRENT_TIME=$(date +%s)
|
||||
ELAPSED_TIME=$((CURRENT_TIME - START_TIME))
|
||||
if [ $ELAPSED_TIME -ge 120 ]; then
|
||||
echo "Timeout reached. Domain $DOMAIN could not be resolved."
|
||||
WAIT=false
|
||||
fi
|
||||
sleep 5
|
||||
done
|
||||
NEW=1
|
||||
fi
|
||||
|
||||
echo "Get valid DNS entries:"
|
||||
filtered_domains=""
|
||||
|
||||
for domain in $DOMAIN; do
|
||||
nslookup_output=$(nslookup "$domain" 2>/dev/null)
|
||||
status=$?
|
||||
|
||||
echo "DOMAIN: $domain $status"
|
||||
if [[ $status -eq 0 ]]; then
|
||||
#ns_ip=$(echo "$nslookup_output" | grep 'Address:' | tail -n1 | awk '{print $2}')
|
||||
ns_ip=$(echo "$nslookup_output" | grep -Eo 'Address: ([0-9]{1,3}\.){3}[0-9]{1,3}' | awk '{print $2}' | tail -n1)
|
||||
|
||||
echo "NS IP $ns_ip"
|
||||
if [[ "$ns_ip" == "$SERVER_IP" ]]; then
|
||||
filtered_domains+=" $domain"
|
||||
echo "Domain added $filtered_domains"
|
||||
fi
|
||||
else
|
||||
echo "Failed to nslookup $domain -- $ns_ip"
|
||||
fi
|
||||
done
|
||||
|
||||
filtered_domains=$(echo "$filtered_domains" | xargs)
|
||||
echo "Filtered domains: $filtered_domains"
|
||||
|
||||
|
||||
DOMAIN_LABEL=""
|
||||
|
||||
for domain in $filtered_domains; do
|
||||
if [ -z "$DOMAIN_LABEL" ]; then
|
||||
DOMAIN_LABEL="traefik.http.routers.$1.rule=Host(\`$domain\`)"
|
||||
else
|
||||
DOMAIN_LABEL+=" || Host(\`$domain\`)"
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
|
||||
echo $DOMAIN_LABEL
|
||||
|
||||
echo "end domains"
|
||||
|
||||
exit 0
|
||||
|
||||
echo "BASEURL: $BASEURL"
|
||||
PORT=$((CONTRACT_ID + 2200))
|
||||
echo "CREATING PORT $PORT"
|
||||
UUID="${1:-default}"
|
||||
DATA_DIR="${BASEURL}odoo/"
|
||||
CUSTOM_DIR="${BASEURL}git/$UUID/custom/"
|
||||
ENTERPRISE_DIR="${BASEURL}git/$UUID/enterprise/"
|
||||
LOGS_DIR="${BASEURL}logs/"
|
||||
CONFIG_DIR="${BASEURL}config/"
|
||||
CC_DIR="${BASEURL}cc/"
|
||||
BACKUP_DIR="/BACKUP/$1"
|
||||
GIT_DIR="${BASEURL}git-server/"
|
||||
ETC_DIR="${BASEURL}etc/"
|
||||
INSTALL_DIR="${BASEURL}install/"
|
||||
SSH_DIR="${BASEURL}.ssh/"
|
||||
HUGO_DIR="${BASEURL}git-server/local/hugo"
|
||||
|
||||
log restoreODOO "DOMAIN_LABEL $DOMAIN_LABEL"
|
||||
|
||||
log restoreODOO "CREATING CONTAINER $UUID"
|
||||
|
||||
echo "Stopping and Deleting Contianer"
|
||||
d stop $UUID
|
||||
d container rm $UUID
|
||||
echo "Done Stopping & Deleting containers Errors above are OK"
|
||||
|
||||
|
||||
EXTRA_DOCKER_PARAMETER=""
|
||||
if [ -d "$HUGO_DIR" ]; then
|
||||
EXTRA_DOCKER_PARAMETER="-v $HUGO_DIR:/mnt/hugo"
|
||||
fi
|
||||
echo "******************"
|
||||
echo $EXTRA_DOCKER_PARAMETER
|
||||
echo $HUGO_DIR
|
||||
echo ***********************""
|
||||
# start container - check done in checkContractsBee
|
||||
sudo docker run -d --name "$UUID" \
|
||||
--network docker-compose_4projects \
|
||||
--restart=always \
|
||||
$EXTRA_DOCKER_PARAMETER \
|
||||
-v "$DATA_DIR/odoo-web-data:/var/lib/odoo" \
|
||||
-v "$CUSTOM_DIR:/mnt/addons/custom" \
|
||||
-v "$ENTERPRISE_DIR:/mnt/addons/enterprise" \
|
||||
-v "$LOGS_DIR:/mnt/logs" \
|
||||
-v "$CC_DIR:/mnt/cc" \
|
||||
-v "$BACKUP_DIR:/mnt/backup" \
|
||||
-v "$CONFIG_DIR:/etc/odoo" \
|
||||
-v "$GIT_DIR:/git-server" \
|
||||
-v "$ETC_DIR:/mnt/etc" \
|
||||
-v "$INSTALL_DIR:/mnt/install" \
|
||||
-v "$SSH_DIR:/etc/sshkey" \
|
||||
-p "$PORT:22" \
|
||||
-e HOST=beedb \
|
||||
-e USER=$UUID \
|
||||
-e PASSWORD=$UUID \
|
||||
-e STAGING=$STAGING \
|
||||
--label "$DOMAIN_LABEL" \
|
||||
--label "traefik.http.services.$1.loadbalancer.server.port=8069" \
|
||||
--label "traefic.http.routers.$1.entrypoints=web, websecure" \
|
||||
--label "traefik.http.routers.$1.tls.certresolver=production" \
|
||||
--label "traefik.http.routers.$1.tls=true" \
|
||||
--label "traefik.http.routers.$1.service=$1" \
|
||||
--label "traefik.http.routers.$1_S.entrypoints=web,websecure" \
|
||||
--label "traefik.http.routers.$1_S.rule=Host(\`s.$1.odoo4projects.com\`)" \
|
||||
--label "traefik.http.routers.$1_S.tls.certresolver=production" \
|
||||
--label "traefik.http.routers.$1_S.tls=true" \
|
||||
--label "traefik.http.services.$1_S.loadbalancer.server.port=8070" \
|
||||
--label "traefik.http.routers.$1_S.service=$1_S" \
|
||||
docker.odoo4projects.com/4projects/odoo_18:$BRANCH
|
||||
sudo chmod 777 $DATA_DIR/odoo-web-data
|
||||
sudo mkdir $ETC_DIR
|
||||
sudo chmod 777 $ETC_DIR
|
||||
sudo chmod 777 $INSTALL_DIR
|
||||
sudo cp /4PROJECTS/config/odoo_18/odoo.conf $CONFIG_DIR
|
||||
sudo cp /4PROJECTS/config/odoo_18/staging.conf $CONFIG_DIR
|
||||
echo "git clone ssh://git@$1.odoo4projects.com:$PORT/git-server/repos/odoo.git" > $ETC_DIR/gitpath
|
||||
echo "$1" > $ETC_DIR/uuid
|
||||
d exec -it $1 chown -R odoo /mnt
|
||||
d exec -it $1 chgrp -R odoo /mnt/
|
||||
d exec -it $1 chown -R git /git-server
|
||||
d exec -it $1 chgrp -R git /git-server
|
||||
d exec -it $1 chmod -R g+rw /git-server
|
||||
if [ "$NEW" -eq 1 ]; then
|
||||
restoreODOO $1 default.zip
|
||||
echo "here"
|
||||
restoreODOO ${1}_ default.zip
|
||||
echo "there"
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user