feat: option to deploy with a proxy
This commit is contained in:
parent
6dea9fad14
commit
ec38a2c35b
5
main.py
5
main.py
@ -52,6 +52,10 @@ def load_cfg(dotenv_path=".env"):
|
|||||||
return cfg
|
return cfg
|
||||||
|
|
||||||
|
|
||||||
|
def get_ip(addr=const.IP_TEST_ADDR):
|
||||||
|
return requests.get(addr, timeout=10).text.strip()
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
cfg = load_cfg()
|
cfg = load_cfg()
|
||||||
|
|
||||||
@ -66,6 +70,7 @@ def main():
|
|||||||
logging.info("MODE: %s", cfg.mode)
|
logging.info("MODE: %s", cfg.mode)
|
||||||
logging.info("EXPORT_INTERVAL: %d (seconds)", cfg.export_interval)
|
logging.info("EXPORT_INTERVAL: %d (seconds)", cfg.export_interval)
|
||||||
logging.info("IS_EXPORT: %r", cfg.is_export)
|
logging.info("IS_EXPORT: %r", cfg.is_export)
|
||||||
|
logging.info("IP: %s", get_ip())
|
||||||
|
|
||||||
# Information for debugging issues caused by potential version differences
|
# Information for debugging issues caused by potential version differences
|
||||||
logging.info("Python version: %s", sys.version)
|
logging.info("Python version: %s", sys.version)
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
aioprocessing==2.0.1
|
aioprocessing==2.0.1
|
||||||
python-dotenv==1.0.1
|
python-dotenv==1.0.1
|
||||||
|
Requests==2.32.3
|
||||||
websockets==12.0
|
websockets==12.0
|
||||||
|
@ -2,8 +2,10 @@
|
|||||||
|
|
||||||
AUTOREMOVE=false
|
AUTOREMOVE=false
|
||||||
VOLUME_PATH="./data" # Local path to the volume's mount point
|
VOLUME_PATH="./data" # Local path to the volume's mount point
|
||||||
|
IS_PROXIED=false
|
||||||
|
PROXY=""
|
||||||
|
|
||||||
while getopts ":hy" opt
|
while getopts ":hyp:" opt
|
||||||
do
|
do
|
||||||
case "$opt" in
|
case "$opt" in
|
||||||
h)
|
h)
|
||||||
@ -14,6 +16,11 @@ do
|
|||||||
echo -e "[+] Automatically removing all containers with the same tag (if any)\n"
|
echo -e "[+] Automatically removing all containers with the same tag (if any)\n"
|
||||||
AUTOREMOVE=true
|
AUTOREMOVE=true
|
||||||
;;
|
;;
|
||||||
|
p)
|
||||||
|
IS_PROXIED=true
|
||||||
|
PROXY=${OPTARG}
|
||||||
|
echo -e "[+] Proxying enabled: $PROXY"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
@ -28,18 +35,27 @@ docker build --no-cache -t chainmapper .
|
|||||||
|
|
||||||
[ ! -d "./data" ] && mkdir data && echo -e "\n[+] Created the default volume directory 'data'"
|
[ ! -d "./data" ] && mkdir data && echo -e "\n[+] Created the default volume directory 'data'"
|
||||||
|
|
||||||
OLD_ID=$(docker ps -a -q -f name="chainmapper-prod")
|
OLD_ID=$(docker ps -a -q -f name="chainmapper")
|
||||||
|
|
||||||
if [ "$OLD_ID" ] && [ "$AUTOREMOVE" = true ]
|
if [ "$OLD_ID" ] && [ "$AUTOREMOVE" = true ]
|
||||||
then
|
then
|
||||||
echo -e "\n[+] Removing existing container with the same tag ($OLD_ID)"
|
echo -e "\n[+] Removing existing container with the same tag ($OLD_ID)"
|
||||||
|
docker stop "$OLD_ID" &> /dev/null
|
||||||
docker rm "$OLD_ID" &> /dev/null
|
docker rm "$OLD_ID" &> /dev/null
|
||||||
elif [ "$OLD_ID" ]
|
elif [ "$OLD_ID" ]
|
||||||
then
|
then
|
||||||
read -p "[?] Existing container found with id '$OLD_ID', do you want to remove it? " -n 1 -r
|
read -p "[?] Existing container found with id '$OLD_ID', do you want to remove it? " -n 1 -r
|
||||||
[[ "$REPLY" =~ ^[Yy]$ ]] || (echo "[!] Exiting..." && exit 0)
|
[[ "$REPLY" =~ ^[Yy]$ ]] || (echo "[!] Exiting..." && exit 0)
|
||||||
|
docker stop "$OLD_ID" &> /dev/null
|
||||||
docker rm "$OLD_ID" &> /dev/null
|
docker rm "$OLD_ID" &> /dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "\n[+] Deploying the container with 'docker run' ('data' as the volume)..."
|
echo -e "\n[+] Deploying the container with 'docker run' ('data' as the volume)..."
|
||||||
docker run -it --restart unless-stopped -v $VOLUME_PATH:/app/data --name chainmapper-prod -d chainmapper
|
|
||||||
|
if [ "$IS_PROXIED" = true ]
|
||||||
|
then
|
||||||
|
# Override the default entrypoint to run the connections through the given proxy
|
||||||
|
docker run -it --restart unless-stopped -v $VOLUME_PATH:/app/data --name chainmapper --entrypoint /bin/bash -d chainmapper -c "HTTPS_PROXY=$PROXY python main.py"
|
||||||
|
else
|
||||||
|
docker run -it --restart unless-stopped -v $VOLUME_PATH:/app/data --name chainmapper -d chainmapper
|
||||||
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user