Implement web broker provider and a sample provider in Rust
This commit is contained in:
75
providers/web/rust-web-provider/scripts/buildDocker.sh
Executable file
75
providers/web/rust-web-provider/scripts/buildDocker.sh
Executable file
@@ -0,0 +1,75 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_NAME=$(basename "$0")
|
||||
DIR=$(cd "$(dirname "$0")" && pwd)
|
||||
ROOT_FOLDER="$DIR/.."
|
||||
PUBLISH_DIR=$ROOT_FOLDER/target/publish
|
||||
TARGET_NAME=rust-web-provider
|
||||
IMAGE_NAME=rust-web-provider
|
||||
IMAGE_VERSION=latest
|
||||
BUILD_RELEASE=true
|
||||
SOURCE_RELEASE_DIR=$ROOT_FOLDER/target/release
|
||||
SOURCE_DEBUG_DIR=$ROOT_FOLDER/target/debug
|
||||
SOURCE_DIR=$SOURCE_RELEASE_DIR
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "$SCRIPT_NAME [options]"
|
||||
echo "Note: You might have to run this as root or sudo."
|
||||
echo ""
|
||||
echo "options"
|
||||
echo " -i, --image-name Image name (default: rust-web-provider)"
|
||||
echo " -v, --image-version Docker Image Version (default: latest)"
|
||||
echo " -r, --build-release Build release configuration - true|false (default: true)"
|
||||
exit 1;
|
||||
}
|
||||
|
||||
process_args()
|
||||
{
|
||||
save_next_arg=0
|
||||
for arg in "$@"
|
||||
do
|
||||
if [ $save_next_arg -eq 1 ]; then
|
||||
IMAGE_NAME="$arg"
|
||||
save_next_arg=0
|
||||
elif [ $save_next_arg -eq 2 ]; then
|
||||
IMAGE_VERSION="$arg"
|
||||
save_next_arg=0
|
||||
elif [ $save_next_arg -eq 3 ]; then
|
||||
BUILD_RELEASE="$arg"
|
||||
save_next_arg=0
|
||||
else
|
||||
case "$arg" in
|
||||
"-h" | "--help" ) usage;;
|
||||
"-i" | "--image-name" ) save_next_arg=1;;
|
||||
"-v" | "--image-version" ) save_next_arg=2;;
|
||||
"-r" | "--build-release" ) save_next_arg=3;;
|
||||
* ) usage;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# process command line args
|
||||
process_args "$@"
|
||||
|
||||
# build bits
|
||||
if [ "$BUILD_RELEASE" == "true" ]; then
|
||||
cargo build --release
|
||||
else
|
||||
SOURCE_DIR=$SOURCE_DEBUG_DIR
|
||||
cargo build
|
||||
fi
|
||||
|
||||
# copy release binary & Dockerfile to a "publish" folder
|
||||
rm -rf "$PUBLISH_DIR"
|
||||
mkdir -p "$PUBLISH_DIR"
|
||||
cp "$ROOT_FOLDER/Dockerfile" "$PUBLISH_DIR"
|
||||
cp "$SOURCE_DIR/$TARGET_NAME" "$PUBLISH_DIR"
|
||||
|
||||
# build the Docker image
|
||||
pushd "$PUBLISH_DIR"
|
||||
docker build -t "$IMAGE_NAME":"$IMAGE_VERSION" .
|
||||
popd
|
||||
Reference in New Issue
Block a user