205 lines
6.4 KiB
Bash
205 lines
6.4 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
orig_service="/etc/init.d/poabridge"
|
||
|
new_service=${orig_service}
|
||
|
|
||
|
dockercompose_file="docker-compose-erc-native.yml"
|
||
|
ref_dockercompose_file="docker-compose.yml"
|
||
|
|
||
|
source_dockerimage="poanetwork/tokenbridge-oracle:1.2.0-rc0"
|
||
|
|
||
|
old_oracle_services="bridge_affirmation bridge_collected bridge_request bridge_senderforeign bridge_senderhome bridge_transfer"
|
||
|
new_oracle_services="bridge_affirmation bridge_collected bridge_half_duplex_transfer bridge_request bridge_senderforeign bridge_senderhome bridge_swap_tokens_worker bridge_transfer"
|
||
|
|
||
|
echo "Looking for the service file"
|
||
|
if [ ! -f ${orig_service} ]; then
|
||
|
echo "Service file ${orig_service} not found"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
echo
|
||
|
echo "Indentifying the directory with docker-compose files"
|
||
|
oracle_dir=`cat ${orig_service} | grep 'WORKDIR=' | sed 's/WORKDIR="//' | tr -d '"'`
|
||
|
if [ -z "${oracle_dir}" ]; then
|
||
|
echo "Cannot identify the directory"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
echo
|
||
|
echo "Updating the service file"
|
||
|
if [ ! -f ${new_service}".bak" ]; then
|
||
|
cp --preserve=all -f ${new_service} ${new_service}".bak"
|
||
|
fi
|
||
|
|
||
|
if [ ! "${orig_service}" == "${new_service}" ]; then
|
||
|
cp --preserve=all ${orig_service} ${new_service}
|
||
|
fi
|
||
|
sed -i 's/-f docker-compose-transfer.yml/-f docker-compose-erc-native.yml/' ${new_service}
|
||
|
sed -i 's/rebuild)/isnotsupported)/' ${new_service}
|
||
|
if [ -z "`grep 'f docker-compose-erc-native.yml' ${new_service}`" ]; then
|
||
|
echo "The service file was not updated properly"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
echo
|
||
|
echo "Re-enable service file"
|
||
|
systemctl daemon-reload
|
||
|
if [ ! "$?" == "0" ]; then
|
||
|
echo "An error during the service file reload"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
echo
|
||
|
echo "Generate a new docker-compose file"
|
||
|
cat <<tEOF > ${oracle_dir}/${dockercompose_file}
|
||
|
networks:
|
||
|
net_db_bridge_affirmation: {driver: bridge}
|
||
|
net_db_bridge_collected: {driver: bridge}
|
||
|
net_db_bridge_half_duplex_transfer: {driver: bridge}
|
||
|
net_db_bridge_request: {driver: bridge}
|
||
|
net_db_bridge_senderforeign: {driver: bridge}
|
||
|
net_db_bridge_senderhome: {driver: bridge}
|
||
|
net_db_bridge_transfer: {driver: bridge}
|
||
|
net_rabbit_bridge_affirmation: {driver: bridge}
|
||
|
net_rabbit_bridge_collected: {driver: bridge}
|
||
|
net_rabbit_bridge_half_duplex_transfer: {driver: bridge}
|
||
|
net_rabbit_bridge_request: {driver: bridge}
|
||
|
net_rabbit_bridge_senderforeign: {driver: bridge}
|
||
|
net_rabbit_bridge_senderhome: {driver: bridge}
|
||
|
net_rabbit_bridge_swap_tokens_worker: {driver: bridge}
|
||
|
net_rabbit_bridge_transfer: {driver: bridge}
|
||
|
services:
|
||
|
bridge_affirmation:
|
||
|
extends: {file: docker-compose.yml, service: bridge_affirmation}
|
||
|
logging:
|
||
|
driver: syslog
|
||
|
options: {tag: '{{.Name}}/{{.ID}}'}
|
||
|
networks: [net_db_bridge_request, net_rabbit_bridge_request]
|
||
|
depends_on:
|
||
|
- redis
|
||
|
- rabbit
|
||
|
bridge_collected:
|
||
|
extends: {file: docker-compose.yml, service: bridge_collected}
|
||
|
logging:
|
||
|
driver: syslog
|
||
|
options: {tag: '{{.Name}}/{{.ID}}'}
|
||
|
networks: [net_db_bridge_request, net_rabbit_bridge_request]
|
||
|
depends_on:
|
||
|
- redis
|
||
|
- rabbit
|
||
|
bridge_half_duplex_transfer:
|
||
|
build: {context: .., dockerfile: oracle/Dockerfile}
|
||
|
cpus: 0.1
|
||
|
entrypoint: yarn watcher:half-duplex-transfer
|
||
|
env_file: ./.env
|
||
|
environment: [NODE_ENV=production, 'ORACLE_VALIDATOR_ADDRESS=\${ORACLE_VALIDATOR_ADDRESS}']
|
||
|
logging:
|
||
|
driver: syslog
|
||
|
options: {tag: '{{.Name}}/{{.ID}}'}
|
||
|
mem_limit: 500m
|
||
|
networks: [net_db_bridge_half_duplex_transfer, net_rabbit_bridge_half_duplex_transfer]
|
||
|
restart: unless-stopped
|
||
|
depends_on:
|
||
|
- redis
|
||
|
- rabbit
|
||
|
bridge_request:
|
||
|
extends: {file: docker-compose.yml, service: bridge_request}
|
||
|
logging:
|
||
|
driver: syslog
|
||
|
options: {tag: '{{.Name}}/{{.ID}}'}
|
||
|
networks: [net_db_bridge_request, net_rabbit_bridge_request]
|
||
|
depends_on:
|
||
|
- redis
|
||
|
- rabbit
|
||
|
bridge_senderforeign:
|
||
|
extends: {file: docker-compose.yml, service: bridge_senderforeign}
|
||
|
logging:
|
||
|
driver: syslog
|
||
|
options: {tag: '{{.Name}}/{{.ID}}'}
|
||
|
networks: [net_db_bridge_request, net_rabbit_bridge_request]
|
||
|
depends_on:
|
||
|
- redis
|
||
|
- rabbit
|
||
|
bridge_senderhome:
|
||
|
extends: {file: docker-compose.yml, service: bridge_senderhome}
|
||
|
logging:
|
||
|
driver: syslog
|
||
|
options: {tag: '{{.Name}}/{{.ID}}'}
|
||
|
networks: [net_db_bridge_request, net_rabbit_bridge_request]
|
||
|
depends_on:
|
||
|
- redis
|
||
|
- rabbit
|
||
|
bridge_swap_tokens_worker:
|
||
|
build: {context: .., dockerfile: oracle/Dockerfile}
|
||
|
cpus: 0.1
|
||
|
entrypoint: yarn worker:swap-tokens
|
||
|
env_file: ./.env
|
||
|
environment: [NODE_ENV=production, 'ORACLE_VALIDATOR_ADDRESS=\${ORACLE_VALIDATOR_ADDRESS}']
|
||
|
logging:
|
||
|
driver: syslog
|
||
|
options: {tag: '{{.Name}}/{{.ID}}'}
|
||
|
mem_limit: 500m
|
||
|
networks: [net_rabbit_bridge_swap_tokens_worker]
|
||
|
restart: unless-stopped
|
||
|
depends_on:
|
||
|
- rabbit
|
||
|
bridge_transfer:
|
||
|
build: {context: .., dockerfile: oracle/Dockerfile}
|
||
|
cpus: 0.1
|
||
|
entrypoint: yarn watcher:transfer
|
||
|
env_file: ./.env
|
||
|
environment: [NODE_ENV=production, 'ORACLE_VALIDATOR_ADDRESS=\${ORACLE_VALIDATOR_ADDRESS}']
|
||
|
logging:
|
||
|
driver: syslog
|
||
|
options: {tag: '{{.Name}}/{{.ID}}'}
|
||
|
mem_limit: 500m
|
||
|
networks: [net_db_bridge_transfer, net_rabbit_bridge_transfer]
|
||
|
restart: unless-stopped
|
||
|
depends_on:
|
||
|
- redis
|
||
|
- rabbit
|
||
|
rabbit:
|
||
|
extends: {file: docker-compose.yml, service: rabbit}
|
||
|
logging:
|
||
|
driver: syslog
|
||
|
options: {tag: '{{.Name}}/{{.ID}}'}
|
||
|
networks: [net_rabbit_bridge_transfer, net_rabbit_bridge_swap_tokens_worker, net_rabbit_bridge_half_duplex_transfer]
|
||
|
redis:
|
||
|
extends: {file: docker-compose.yml, service: redis}
|
||
|
logging:
|
||
|
driver: syslog
|
||
|
options: {tag: '{{.Name}}/{{.ID}}'}
|
||
|
networks: [net_db_bridge_transfer, net_db_bridge_half_duplex_transfer]
|
||
|
version: '2.4'
|
||
|
tEOF
|
||
|
|
||
|
if [ ! -f ${oracle_dir}/${dockercompose_file} ]; then
|
||
|
echo "New compose file was not generated"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
chmod --reference=${oracle_dir}/${ref_dockercompose_file} ${oracle_dir}/${dockercompose_file}
|
||
|
chown --reference=${oracle_dir}/${ref_dockercompose_file} ${oracle_dir}/${dockercompose_file}
|
||
|
|
||
|
echo
|
||
|
echo "Delete previous docker images"
|
||
|
for i in ${old_oracle_services}; do
|
||
|
docker rmi "oracle_"${i}
|
||
|
done
|
||
|
|
||
|
echo
|
||
|
echo "Pull the docker image for 1.2.0-rc0"
|
||
|
docker pull ${source_dockerimage}
|
||
|
|
||
|
docker inspect ${source_dockerimage} >/dev/null
|
||
|
if [ ! "$?" == "0" ]; then
|
||
|
echo "An error with pulling of the docker image"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
echo
|
||
|
echo "Create new set of docker images"
|
||
|
for i in ${new_oracle_services}; do
|
||
|
docker tag ${source_dockerimage} "oracle_"${i}
|
||
|
done
|