Following is the error:
ERROR: The Compose file is invalid because: Service portal has neither an image nor a build context specified. At least one must be provided.
Following is my bitwarden.sh file:
#!/usr/bin/env bash
set -e
cat << “EOF”
| |__ () |__ ____ _ _ __ _| | ___ _ __
| ’ | | \ \ /\ / / | '__/ _
|/ _ \ ’ \
| |) | | | \ V V / (| | | | (| | / | | |
|_./||_| _/_/ _,|| _,_|_|| ||
EOF
cat << EOF
Open source password management solutions
Copyright 2015-$(date +‘%Y’), 8bit Solutions LLC
https://bitwarden.com, Bitwarden · GitHub
===================================================
EOF
Setup
DIR=“$( cd “$( dirname “${BASH_SOURCE[0]}” )” && pwd )”
SCRIPT_NAME=basename "$0"
SCRIPT_PATH=“$DIR/$SCRIPT_NAME”
OUTPUT=“$DIR/bwdata”
if [ $# -eq 2 ]
then
OUTPUT=$2
fi
SCRIPTS_DIR=“$OUTPUT/scripts”
GITHUB_BASE_URL=“https://raw.githubusercontent.com/bitwarden/server/master”
Please do not create pull requests modifying the version numbers.
COREVERSION=“1.44.0”
WEBVERSION=“2.24.0”
echo “bitwarden.sh version $COREVERSION”
docker --version
docker-compose --version
echo “”
Functions
function downloadSelf() {
if curl -s -w “http_code %{http_code}” -o $SCRIPT_PATH.1 $GITHUB_BASE_URL/scripts/bitwarden.sh | grep -q “^http_code 20[0-9]”
then
mv $SCRIPT_PATH.1 $SCRIPT_PATH
chmod u+x $SCRIPT_PATH
else
rm -f $SCRIPT_PATH.1
fi
}
function downloadRunFile() {
if [ ! -d “$SCRIPTS_DIR” ]
then
mkdir $SCRIPTS_DIR
fi
curl -s -o $SCRIPTS_DIR/run.sh $GITHUB_BASE_URL/scripts/run.sh
chmod u+x $SCRIPTS_DIR/run.sh
rm -f $SCRIPTS_DIR/install.sh
}
function checkOutputDirExists() {
if [ ! -d “$OUTPUT” ]
then
echo “Cannot find a Bitwarden installation at $OUTPUT.”
exit 1
fi
}
function checkOutputDirNotExists() {
if [ -d “$OUTPUT/docker” ]
then
echo “Looks like Bitwarden is already installed at $OUTPUT.”
exit 1
fi
}
function listCommands() {
cat << EOT
Available commands:
install
start
restart
stop
update
updatedb
updaterun
updateself
updateconf
renewcert
rebuild
help
See more at Install and Deploy - Linux | Bitwarden Help Center
EOT
}
Commands
case $1 in
“install”)
checkOutputDirNotExists
mkdir -p $OUTPUT
downloadRunFile
$SCRIPTS_DIR/run.sh install $OUTPUT $COREVERSION $WEBVERSION
;;
“start” | “restart”)
checkOutputDirExists
$SCRIPTS_DIR/run.sh restart $OUTPUT $COREVERSION $WEBVERSION
;;
“update”)
checkOutputDirExists
downloadRunFile
$SCRIPTS_DIR/run.sh update $OUTPUT $COREVERSION $WEBVERSION
;;
“rebuild”)
checkOutputDirExists
$SCRIPTS_DIR/run.sh rebuild $OUTPUT $COREVERSION $WEBVERSION
;;
“updateconf”)
checkOutputDirExists
$SCRIPTS_DIR/run.sh updateconf $OUTPUT $COREVERSION $WEBVERSION
;;
“updatedb”)
checkOutputDirExists
$SCRIPTS_DIR/run.sh updatedb $OUTPUT $COREVERSION $WEBVERSION
;;
“stop”)
checkOutputDirExists
$SCRIPTS_DIR/run.sh stop $OUTPUT $COREVERSION $WEBVERSION
;;
“renewcert”)
checkOutputDirExists
$SCRIPTS_DIR/run.sh renewcert $OUTPUT $COREVERSION $WEBVERSION
;;
“updaterun”)
checkOutputDirExists
downloadRunFile
;;
“updateself”)
downloadSelf && echo “Updated self.” && exit
;;
“help”)
listCommands
;;
*)
echo “No command found.”
echo
listCommands
esac