fix: state generation of docker images (#216)

This commit is contained in:
Adam Uhlíř 2022-11-07 02:38:57 -08:00 committed by GitHub
parent a7eb6c6d05
commit 7dc8992df7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 19 deletions

View File

@ -38,6 +38,7 @@ BEE_VERSION=$("$MY_PATH/utils/env-variable-value.sh" BEE_VERSION)
BEE_IMAGE_PREFIX=$("$MY_PATH/utils/env-variable-value.sh" BEE_IMAGE_PREFIX)
STATE_COMMIT=$("$MY_PATH/utils/env-variable-value.sh" STATE_COMMIT)
OFFICIAL_BEE_IMAGE="ethersphere/bee:$BEE_VERSION"
CONTRACT_ADDRESSES="$1"
# Make sure we the user has permission all the files
echo "Build Bee Docker images..."
@ -67,11 +68,18 @@ fi
### BEE_VERSION ALERNATIONS END
CONTRACT_ADDRESSES_LABELS=""
IFS=';' array=($CONTRACT_ADDRESSES)
for element in "${array[@]}";
do
CONTRACT_ADDRESSES_LABELS+=" --label org.ethswarm.beefactory.contracts.${element}"
done
echo "Build Dockerfiles"
for BEE_DIR in $BEE_DIRS
do
echo "Build Bee version $BEE_VERSION on $BEE_DIR"
dockerbuild "$BEE_DIR" "$MY_PATH/bee-data-dirs/Dockerfile" "$BEE_VERSION" "$BEE_IMAGE_PREFIX" "$1"
dockerbuild "$BEE_DIR" "$MY_PATH/bee-data-dirs/Dockerfile" "$BEE_VERSION" "$BEE_IMAGE_PREFIX" "$CONTRACT_ADDRESSES_LABELS"
done
echo "Docker image builds were successful!"

View File

@ -127,11 +127,9 @@ BEE_PASSWORD="password"
QUEEN_BOOTNODE=""
PORT_MAPS=2
SWAP=true
SWAP_FACTORY_ADDRESS="0x5b1869D9A4C187F2EAa108f3062412ecf0526b24"
POSTAGE_STAMP_ADDRESS="0xCfEB869F69431e42cdB54A4F4f105C19C080A601"
PRICE_ORACLE_ADDRESS="0x254dffcd3277C0b1660F6d42EFbB754edaBAbC2B"
INIT_ROOT_DATA_DIR="$MY_PATH/bee-data-dirs"
HOSTNAME="127.0.0.1"
CONTRACT_ADDRESSES=""
# Decide script action
case "$1" in
@ -177,6 +175,10 @@ do
PORT_MAPS="${1#*=}"
shift 1
;;
--contract-addrs=*)
CONTRACT_ADDRESSES="${1#*=}"
shift 1
;;
--own-image)
OWN_IMAGE=true
shift 1
@ -201,6 +203,13 @@ if $EPHEMERAL ; then
EXTRA_DOCKER_PARAMS="--rm"
fi
CONTRACT_ADDRESSES_ARGS=""
IFS=';' array=($CONTRACT_ADDRESSES)
for element in "${array[@]}";
do
CONTRACT_ADDRESSES_ARGS+=" --${element}"
done
# Start Bee Queen
if [ -z "$QUEEN_CONTAINER_IN_DOCKER" ] || $EPHEMERAL ; then
DOCKER_IMAGE="$BEE_IMAGE"
@ -236,13 +245,11 @@ if [ -z "$QUEEN_CONTAINER_IN_DOCKER" ] || $EPHEMERAL ; then
--block-time=1 \
--swap-enable=$SWAP \
--swap-endpoint="http://$SWARM_BLOCKCHAIN_NAME:9545" \
--swap-factory-address=$SWAP_FACTORY_ADDRESS \
--postage-stamp-address=$POSTAGE_STAMP_ADDRESS \
--price-oracle-address=$PRICE_ORACLE_ADDRESS \
--network-id 4020 \
--full-node=true \
--welcome-message="You have found the queen of the beehive..." \
--cors-allowed-origins="*"
--cors-allowed-origins="*" \
$CONTRACT_ADDRESSES_ARGS
else
docker start "$QUEEN_CONTAINER_IN_DOCKER"
fi
@ -288,13 +295,11 @@ for i in $(seq 1 1 "$WORKERS"); do
--block-time=1 \
--swap-enable=$SWAP \
--swap-endpoint="http://$SWARM_BLOCKCHAIN_NAME:9545" \
--swap-factory-address=$SWAP_FACTORY_ADDRESS \
--postage-stamp-address=$POSTAGE_STAMP_ADDRESS \
--price-oracle-address=$PRICE_ORACLE_ADDRESS \
--network-id 4020 \
--full-node=true \
--welcome-message="I'm just Bee worker ${i} in the beehive." \
--cors-allowed-origins="*"
--cors-allowed-origins="*" \
$CONTRACT_ADDRESSES_ARGS
else
docker start "$WORKER_CONTAINER_IN_DOCKER"
fi

View File

@ -44,14 +44,14 @@ build_bee() {
"$MY_PATH/utils/build-image-tag.sh" set "$BEE_VERSION"
}
deploy_contracts_and_return_labels() {
LABELS=""
deploy_contracts_and_return_addresses() {
CONTRACT_ADDRESSES=""
while IFS=$'\n' read -r contract; do
LABELS+=" --label org.ethswarm.beefactory.contracts.$(echo $contract | cut -d ":" -f 4)=$(echo $contract | cut -d ":" -f 5)"
CONTRACT_ADDRESSES+="$(echo $contract | cut -d ":" -f 4)=$(echo $contract | cut -d ":" -f 5);"
done < <(npm run migrate:contracts | grep ^::CONTRACT)
echo "$LABELS"
echo "$CONTRACT_ADDRESSES"
}
MY_PATH=$(dirname "$0")
@ -116,7 +116,7 @@ if $BUILD_BASE_BEE ; then
fi
"$MY_PATH/network.sh"
"$MY_PATH/blockchain.sh"
DOCKER_CONTRACT_LABELS=$(deploy_contracts_and_return_labels)
CONTRACT_ADDRESSES=$(deploy_contracts_and_return_addresses)
npm run supply
chmod -R 777 "$MY_PATH/bee-data-dirs/"
@ -125,7 +125,7 @@ if $GEN_TRAFFIC ; then
echo "Bee image with special state will be commited... traffic generation is on."
# give the permission to the bee user
echo "Start Bee nodes so that traffic can be generated and commited to the images"
"$MY_PATH/bee.sh" start --version="$BEE_VERSION" --workers=$SUPPORTED_WORKER_N --detach
"$MY_PATH/bee.sh" start --version="$BEE_VERSION" --workers=$SUPPORTED_WORKER_N --contract-addrs=$CONTRACT_ADDRESSES --detach
echo "Generating traffic on Bee node $GEN_TRAFFIC_UPLOAD_NODE"
echo "Run traffic generation until $CHEQUES_COUNT incoming cheques will arrive to node under Debug API $GEN_TRAFFIC_CHECKER_NODE_DEBUG"
npm run gen:traffic -- "$CHEQUES_COUNT" "$GEN_TRAFFIC_CHECKER_NODE_DEBUG;$GEN_TRAFFIC_UPLOAD_NODE;$GEN_TRAFFIC_UPLOAD_NODE_DEBUG"
@ -148,5 +148,5 @@ if $GEN_TRAFFIC ; then
export BLOCKCHAIN_VERSION+="-for-$BEE_VERSION"
fi
"$MY_PATH/bee-docker-build.sh" "$DOCKER_CONTRACT_LABELS"
"$MY_PATH/bee-docker-build.sh" "$CONTRACT_ADDRESSES"
"$MY_PATH/blockchain-docker-build.sh"