forked from freeleaps/freeleaps-pub
Update for component init checking logic
This commit is contained in:
parent
3f3580e25e
commit
137c9936b0
@ -178,18 +178,18 @@ devbox_init_usage() {
|
|||||||
echo
|
echo
|
||||||
|
|
||||||
# :flag.usage freeleaps username
|
# :flag.usage freeleaps username
|
||||||
printf " %s\n" "--freeleaps-username FREELEAPS_USERNAME (required)"
|
printf " %s\n" "--freeleaps-username FREELEAPS_USERNAME (optional)"
|
||||||
printf " Specifies the Freeleaps.com repository username (Required).\n"
|
printf " Specifies the Freeleaps.com repository username (Optional).\n"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
# :flag.usage freeleaps password
|
# :flag.usage freeleaps password
|
||||||
printf " %s\n" "--freeleaps-password FREELEAPS_PASSWORD (required)"
|
printf " %s\n" "--freeleaps-password FREELEAPS_PASSWORD (optional)"
|
||||||
printf " Specifies the Freeleaps.com password repository (Required).\n"
|
printf " Specifies the Freeleaps.com password repository (Optional).\n"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
# :flag.usage use local component
|
# :flag.usage use local component
|
||||||
printf " %s\n" "--use-local-component USE_LOCAL_COMPONENT"
|
printf " %s\n" "--use-local-component USE_LOCAL_COMPONENT"
|
||||||
printf " Check if use local component or use online dev environment. (Default: false, use online service) (Optional)\n"
|
printf " Check if use local component or use online dev environment. (Optional, default=false)\n"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
# :flag.usage devsvc image repo
|
# :flag.usage devsvc image repo
|
||||||
@ -204,7 +204,7 @@ devbox_init_usage() {
|
|||||||
|
|
||||||
# :flag.usage devsvc image tag
|
# :flag.usage devsvc image tag
|
||||||
printf " %s\n" "--devsvc-image-tag DEVSVC_IMAGE_TAG"
|
printf " %s\n" "--devsvc-image-tag DEVSVC_IMAGE_TAG"
|
||||||
printf " Specifies the image tag for devsvc component. (Optional, default=latest-)\n"
|
printf " Specifies the image tag for devsvc component. (Optional, default=latest-linux-arm64)\n"
|
||||||
printf " %s\n" "Default: latest"
|
printf " %s\n" "Default: latest"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
@ -220,7 +220,7 @@ devbox_init_usage() {
|
|||||||
|
|
||||||
# :flag.usage notification image tag
|
# :flag.usage notification image tag
|
||||||
printf " %s\n" "--notification-image-tag NOTIFICATION_IMAGE_TAG"
|
printf " %s\n" "--notification-image-tag NOTIFICATION_IMAGE_TAG"
|
||||||
printf " Specifies the image tag for notification component. (Optional, default=latest)\n"
|
printf " Specifies the image tag for notification component. (Optional, default=latest-linux-arm64)\n"
|
||||||
printf " %s\n" "Default: latest"
|
printf " %s\n" "Default: latest"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
@ -236,7 +236,7 @@ devbox_init_usage() {
|
|||||||
|
|
||||||
# :flag.usage content image tag
|
# :flag.usage content image tag
|
||||||
printf " %s\n" "--content-image-tag CONTENT_IMAGE_TAG"
|
printf " %s\n" "--content-image-tag CONTENT_IMAGE_TAG"
|
||||||
printf " Specifies the image tag for content component. (Optional, default=latest)\n"
|
printf " Specifies the image tag for content component. (Optional, default=latest-linux-arm64)\n"
|
||||||
printf " %s\n" "Default: latest"
|
printf " %s\n" "Default: latest"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
@ -252,7 +252,7 @@ devbox_init_usage() {
|
|||||||
|
|
||||||
# :flag.usage central storage image tag
|
# :flag.usage central storage image tag
|
||||||
printf " %s\n" "--central_storage-image-tag CENTRAL_STORAGE_IMAGE_TAG"
|
printf " %s\n" "--central_storage-image-tag CENTRAL_STORAGE_IMAGE_TAG"
|
||||||
printf " Specifies the image tag for central_storage component. (Optional, default=latest)\n"
|
printf " Specifies the image tag for central_storage component. (Optional, default=latest-linux-arm64)\n"
|
||||||
printf " %s\n" "Default: latest"
|
printf " %s\n" "Default: latest"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
@ -268,7 +268,7 @@ devbox_init_usage() {
|
|||||||
|
|
||||||
# :flag.usage authentication image tag
|
# :flag.usage authentication image tag
|
||||||
printf " %s\n" "--authentication-image-tag AUTHENTICATION_IMAGE_TAG"
|
printf " %s\n" "--authentication-image-tag AUTHENTICATION_IMAGE_TAG"
|
||||||
printf " Specifies the image tag for authentication component. (Optional, default=latest)\n"
|
printf " Specifies the image tag for authentication component. (Optional, default=latest-linux-arm64)\n"
|
||||||
printf " %s\n" "Default: latest"
|
printf " %s\n" "Default: latest"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
@ -729,7 +729,6 @@ devbox_init_command() {
|
|||||||
local FREELEAPS_USERNAME="$args_freeleaps_username" # --freeleaps-username
|
local FREELEAPS_USERNAME="$args_freeleaps_username" # --freeleaps-username
|
||||||
local FREELEAPS_PASSWORD="$args_freeleaps_password" # --freeleaps-password
|
local FREELEAPS_PASSWORD="$args_freeleaps_password" # --freeleaps-password
|
||||||
|
|
||||||
|
|
||||||
local USE_LOCAL_COMPONENT="$args_use_local_component" # --use-local-component
|
local USE_LOCAL_COMPONENT="$args_use_local_component" # --use-local-component
|
||||||
|
|
||||||
local DEVSVC_REPO="$args_devsvc_image_repo" # --devsvc-image-repo
|
local DEVSVC_REPO="$args_devsvc_image_repo" # --devsvc-image-repo
|
||||||
@ -796,11 +795,8 @@ devbox_init_command() {
|
|||||||
|
|
||||||
echo "==> Checking parameters..."
|
echo "==> Checking parameters..."
|
||||||
for component in "${components[@]}"; do
|
for component in "${components[@]}"; do
|
||||||
echo "==> Checking ${component} image repo...value: $(get_arg "--${component}-image-repo")"
|
|
||||||
if [[ -n "$(get_arg "--${component}-image-repo")" ]]; then
|
if [[ -n "$(get_arg "--${component}-image-repo")" ]]; then
|
||||||
is_pull_all_components=false
|
is_pull_all_components=false
|
||||||
|
|
||||||
else
|
|
||||||
start_components+=("${component}")
|
start_components+=("${component}")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -836,10 +832,12 @@ devbox_init_command() {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "==> is_pull_all_components: $is_pull_all_components"
|
# If is_pull_all_components is true, then pull all components
|
||||||
|
if [[ "$is_pull_all_components" == true ]]; then
|
||||||
|
start_components=("${components[@]}")
|
||||||
|
fi
|
||||||
|
|
||||||
echo " ===================================================== "
|
echo " ===================================================== "
|
||||||
|
|
||||||
echo "Parameters:"
|
echo "Parameters:"
|
||||||
echo " OS = $OS"
|
echo " OS = $OS"
|
||||||
echo " ARCH = $ARCH"
|
echo " ARCH = $ARCH"
|
||||||
@ -899,7 +897,6 @@ devbox_init_command() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "==> Detected OS: $OS, ARCH: $ARCH"
|
|
||||||
|
|
||||||
# Default arch tag value if Arch is amd64 then latest-linux-amd64 else latest-linux-arm64
|
# Default arch tag value if Arch is amd64 then latest-linux-amd64 else latest-linux-arm64
|
||||||
local arch_tag="latest-linux-${ARCH}"
|
local arch_tag="latest-linux-${ARCH}"
|
||||||
@ -934,15 +931,21 @@ devbox_init_command() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# -------------------------------------------------------------------
|
|
||||||
# 4. If .devbox-instance exists, --force,use it
|
|
||||||
# -------------------------------------------------------------------
|
|
||||||
if [[ -f "$WORKING_HOME/.devbox-instance" && -z "$FORCE_INIT" ]]; then
|
if [[ -f "$WORKING_HOME/.devbox-instance" && -z "$FORCE_INIT" ]]; then
|
||||||
echo "ERROR: DevBox already initialized. Use --force to overwrite."
|
# Echo all start_components
|
||||||
exit 1
|
if [[ "${#start_components[@]}" -gt 0 ]]; then
|
||||||
|
for component in "${start_components[@]}"; do
|
||||||
|
if [[ -f "$WORKING_HOME/.${component}-instance" ]]; then
|
||||||
|
echo "ERROR: Container named $component already exists. Use --force to remove it."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo "ERROR: Container named $DEVBOX_NAME already exists. Use --force to remove it."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------
|
# -------------------------------------------------------------------
|
||||||
# 5.install docker and check docker running
|
# 5.install docker and check docker running
|
||||||
# -------------------------------------------------------------------
|
# -------------------------------------------------------------------
|
||||||
@ -972,13 +975,20 @@ devbox_init_command() {
|
|||||||
echo "==> Removing existing container named $DEVBOX_NAME ..."
|
echo "==> Removing existing container named $DEVBOX_NAME ..."
|
||||||
docker stop "$DEVBOX_NAME" &>/dev/null || true
|
docker stop "$DEVBOX_NAME" &>/dev/null || true
|
||||||
docker rm "$DEVBOX_NAME" &>/dev/null || true
|
docker rm "$DEVBOX_NAME" &>/dev/null || true
|
||||||
|
|
||||||
|
# Remove .devbox-instance file
|
||||||
|
rm -f "$WORKING_HOME/.devbox-instance"
|
||||||
|
|
||||||
|
# Remove .backend.pid .frontend.pid
|
||||||
|
rm -f "$WORKING_HOME/.backend.pid"
|
||||||
|
rm -f "$WORKING_HOME/.frontend.pid"
|
||||||
else
|
else
|
||||||
echo "ERROR: Container named $DEVBOX_NAME already exists. Use --force to remove it."
|
echo "ERROR: Container named $DEVBOX_NAME already exists. Use --force to remove it."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Create Docker network for DevBox container. TODO: if the network need to be configured in the docker-compose file add some logic to load it from the file
|
||||||
DEVBOX_FREELEAPS2_NETWORK="devbox_freeleaps2-network"
|
DEVBOX_FREELEAPS2_NETWORK="devbox_freeleaps2-network"
|
||||||
|
|
||||||
echo '==> [INIT] Starting DevBox environment initialization...'
|
echo '==> [INIT] Starting DevBox environment initialization...'
|
||||||
@ -1068,7 +1078,6 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Save MongoDB and RabbitMQ container ids to .mongodb-instance and .rabbitmq-instance
|
# Save MongoDB and RabbitMQ container ids to .mongodb-instance and .rabbitmq-instance
|
||||||
|
|
||||||
mongo_container_id=$(docker ps -a --format '{{.Names}}' | grep "^freeleaps2-mongodb\$")
|
mongo_container_id=$(docker ps -a --format '{{.Names}}' | grep "^freeleaps2-mongodb\$")
|
||||||
echo "$mongo_container_id" > "$WORKING_HOME/.mongodb-instance"
|
echo "$mongo_container_id" > "$WORKING_HOME/.mongodb-instance"
|
||||||
|
|
||||||
@ -1081,6 +1090,7 @@ echo "$USE_LOCAL_COMPONENT" > "$WORKING_HOME/.use-local-component"
|
|||||||
|
|
||||||
pushd $WORKING_HOME
|
pushd $WORKING_HOME
|
||||||
|
|
||||||
|
|
||||||
# Make a user input (Y/N) to continue pull freeleaps.com code and start if N then exit
|
# Make a user input (Y/N) to continue pull freeleaps.com code and start if N then exit
|
||||||
read -p "Do you want to continue to pull freeleaps.com code and start the services? (Y/N): " user_input
|
read -p "Do you want to continue to pull freeleaps.com code and start the services? (Y/N): " user_input
|
||||||
if [[ "$user_input" == "N" || "$user_input" == "n" ]]; then
|
if [[ "$user_input" == "N" || "$user_input" == "n" ]]; then
|
||||||
@ -1089,6 +1099,13 @@ if [[ "$user_input" == "N" || "$user_input" == "n" ]]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check if username and password are set
|
||||||
|
if [[ -z "$FREELEAPS_USERNAME" || -z "$FREELEAPS_PASSWORD" ]]; then
|
||||||
|
echo "Warining: Username and password are required to pull freeleaps.com code."
|
||||||
|
echo "==> [INIT] DevBox environment initialization completed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Check if freeleaps2-frontend exists, if not git clone it
|
# Check if freeleaps2-frontend exists, if not git clone it
|
||||||
if [ ! -d $WORKING_HOME/freeleaps ]; then
|
if [ ! -d $WORKING_HOME/freeleaps ]; then
|
||||||
echo "Git cloning freeleaps.com:3443/products/freeleaps.git"
|
echo "Git cloning freeleaps.com:3443/products/freeleaps.git"
|
||||||
@ -1462,21 +1479,6 @@ devbox_start_command() {
|
|||||||
|
|
||||||
local devbox_container_id=$(cat "$devbox_container_id_file_path")
|
local devbox_container_id=$(cat "$devbox_container_id_file_path")
|
||||||
|
|
||||||
echo "==> Starting DevBox services..."
|
|
||||||
|
|
||||||
# Check if DevBox container is running
|
|
||||||
if ! docker ps --no-trunc --format '{{.ID}}' | grep -q "^${devbox_container_id}\$"; then
|
|
||||||
echo "==> DevBox container is not running, starting container..."
|
|
||||||
# Start the container
|
|
||||||
if ! docker start "${devbox_container_id}"; then
|
|
||||||
echo "ERROR: Failed to start DevBox container."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "==> DevBox container started successfully."
|
|
||||||
else
|
|
||||||
echo "==> DevBox container is already running."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if use local component
|
# Check if use local component
|
||||||
if [[ -f "$WORKING_HOME/.use-local-component" ]]; then
|
if [[ -f "$WORKING_HOME/.use-local-component" ]]; then
|
||||||
USE_LOCAL_COMPONENT=$(cat "$WORKING_HOME/.use-local-component")
|
USE_LOCAL_COMPONENT=$(cat "$WORKING_HOME/.use-local-component")
|
||||||
@ -1487,7 +1489,7 @@ devbox_start_command() {
|
|||||||
if [[ "$USE_LOCAL_COMPONENT" == "true" ]]; then
|
if [[ "$USE_LOCAL_COMPONENT" == "true" ]]; then
|
||||||
# If no component is specified, start all components
|
# If no component is specified, start all components
|
||||||
if [[ -z "$COMPONENT" ]]; then
|
if [[ -z "$COMPONENT" ]]; then
|
||||||
COMPONENTS=("mongodb" "rabbitmq" "devbox" "devsvc" "notification" "content" "central_storage" "authentication")
|
COMPONENTS=( "gitea" "mongodb" "rabbitmq" "devbox" "devsvc" "notification" "content" "central_storage" "authentication")
|
||||||
else
|
else
|
||||||
COMPONENTS=("$COMPONENT")
|
COMPONENTS=("$COMPONENT")
|
||||||
fi
|
fi
|
||||||
@ -1509,91 +1511,7 @@ devbox_start_command() {
|
|||||||
# Start the specified components
|
# Start the specified components
|
||||||
for comp in "${COMPONENTS[@]}"; do
|
for comp in "${COMPONENTS[@]}"; do
|
||||||
case "$comp" in
|
case "$comp" in
|
||||||
"gitea")
|
"gitea" | "mongodb" | "rabbitmq" | "devbox" | "devsvc" | "notification" | "content" | "central_storage" | "authentication")
|
||||||
echo "==> Starting Gitea..."
|
|
||||||
# Check if Gitea container file path
|
|
||||||
local gitea_container_id_file_path="${WORKING_HOME}/.gitea-instance"
|
|
||||||
if [[ ! -f "$gitea_container_id_file_path" ]]; then
|
|
||||||
echo "ERROR: Gitea container is not running. Please run 'devbox init' first."
|
|
||||||
else
|
|
||||||
local gitea_container_id=$(cat "$gitea_container_id_file_path")
|
|
||||||
if ! docker ps --no-trunc --format '{{.ID}}' | grep -q "^${gitea_container_id}\$"; then
|
|
||||||
echo "==> Gitea container is not running, starting container..."
|
|
||||||
# Start the container
|
|
||||||
if ! docker start "${gitea_container_id}"; then
|
|
||||||
echo "ERROR: Failed to start Gitea container."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "==> Gitea container started successfully."
|
|
||||||
else
|
|
||||||
echo "==> Gitea container is already running."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"mongodb")
|
|
||||||
echo "==> Starting MongoDB..."
|
|
||||||
# Check if MongoDB container file path
|
|
||||||
local mongodb_container_id_file_path="${WORKING_HOME}/.mongodb-instance"
|
|
||||||
if [[ ! -f "$mongodb_container_id_file_path" ]]; then
|
|
||||||
echo "ERROR: MongoDB container is not running. Please run 'devbox init' first."
|
|
||||||
else
|
|
||||||
local mongodb_container_id=$(cat "$mongodb_container_id_file_path")
|
|
||||||
if ! docker ps --no-trunc --format '{{.ID}}' | grep -q "^${mongodb_container_id}\$"; then
|
|
||||||
echo "==> MongoDB container is not running, starting container..."
|
|
||||||
# Start the container
|
|
||||||
if ! docker start "${mongodb_container_id}"; then
|
|
||||||
echo "ERROR: Failed to start MongoDB container."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "==> MongoDB container started successfully."
|
|
||||||
else
|
|
||||||
echo "==> MongoDB container is already running."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"rabbitmq")
|
|
||||||
echo "==> Starting RabbitMQ..."
|
|
||||||
# Check if RabbitMQ container file path
|
|
||||||
local rabbitmq_container_id_file_path="${WORKING_HOME}/.rabbitmq-instance"
|
|
||||||
if [[ ! -f "$rabbitmq_container_id_file_path" ]]; then
|
|
||||||
echo "ERROR: RabbitMQ container is not running. Please run 'devbox init' first."
|
|
||||||
else
|
|
||||||
local rabbitmq_container_id=$(cat "$rabbitmq_container_id_file_path")
|
|
||||||
if ! docker ps --no-trunc --format '{{.ID}}' | grep -q "^${rabbitmq_container_id}\$"; then
|
|
||||||
echo "==> RabbitMQ container is not running, starting container..."
|
|
||||||
# Start the container
|
|
||||||
if ! docker start "${rabbitmq_container_id}"; then
|
|
||||||
echo "ERROR: Failed to start RabbitMQ container."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "==> RabbitMQ container started successfully."
|
|
||||||
else
|
|
||||||
echo "==> RabbitMQ container is already running."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"devbox")
|
|
||||||
echo "==> Starting DevBox..."
|
|
||||||
# Check if DevBox container file path
|
|
||||||
local devbox_container_id_file_path="${WORKING_HOME}/.devbox-instance"
|
|
||||||
if [[ ! -f "$devbox_container_id_file_path" ]]; then
|
|
||||||
echo "ERROR: DevBox container is not running. Please run 'devbox init' first."
|
|
||||||
else
|
|
||||||
local devbox_container_id=$(cat "$devbox_container_id_file_path")
|
|
||||||
if ! docker ps --no-trunc --format '{{.ID}}' | grep -q "^${devbox_container_id}\$"; then
|
|
||||||
echo "==> DevBox container is not running, starting container..."
|
|
||||||
# Start the container
|
|
||||||
if ! docker start "${devbox_container_id}"; then
|
|
||||||
echo "ERROR: Failed to start DevBox container."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "==> DevBox container started successfully."
|
|
||||||
else
|
|
||||||
echo "==> DevBox container is already running."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"devsvc" | "notification" | "content" | "central_storage" | "authentication")
|
|
||||||
echo "==> Starting $comp service..."
|
echo "==> Starting $comp service..."
|
||||||
# Check if the component container file exists
|
# Check if the component container file exists
|
||||||
local component_container_id_file_path="${WORKING_HOME}/.${comp}-instance"
|
local component_container_id_file_path="${WORKING_HOME}/.${comp}-instance"
|
||||||
@ -1621,7 +1539,20 @@ devbox_start_command() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if [[ "$FREELEAPS_ENDPOINT" == "true" ]]; then
|
if [[ "$FREELEAPS_ENDPOINT" == "true" ]]; then
|
||||||
|
# Sleep for 10 seconds to allow the services to start and echo 10 seconds increase from 1 to 10 in each second
|
||||||
|
for i in {1..20}; do
|
||||||
|
if docker ps --no-trunc --format '{{.ID}}' | grep -q "^${devbox_container_id}\$"; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
echo -n "-"
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
|
||||||
|
if docker ps --no-trunc --format '{{.ID}}' | grep -q "^${devbox_container_id}\$"; then
|
||||||
|
echo "==> Starting Freeleaps frontend and backend services..."
|
||||||
# Start the backend and frontend services
|
# Start the backend and frontend services
|
||||||
docker exec -i "$devbox_container_id" bash <<EOF
|
docker exec -i "$devbox_container_id" bash <<EOF
|
||||||
# Start the backend and frontend services
|
# Start the backend and frontend services
|
||||||
@ -1703,7 +1634,12 @@ fi
|
|||||||
|
|
||||||
echo "Backend and frontend services started successfully."
|
echo "Backend and frontend services started successfully."
|
||||||
EOF
|
EOF
|
||||||
|
else
|
||||||
|
echo "ERROR: DevBox container is not running."
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1718,7 +1654,7 @@ devbox_stop_command() {
|
|||||||
|
|
||||||
# If the DevBox container is not running, exit
|
# If the DevBox container is not running, exit
|
||||||
if [[ -z "$COMPONENT" ]]; then
|
if [[ -z "$COMPONENT" ]]; then
|
||||||
COMPONENTS=("mongodb" "rabbitmq" "devbox" "devsvc" "notification" "content" "central_storage" "authentication")
|
COMPONENTS=("gitea" "mongodb" "rabbitmq" "devbox" "devsvc" "notification" "content" "central_storage" "authentication")
|
||||||
else
|
else
|
||||||
COMPONENTS=("$COMPONENT")
|
COMPONENTS=("$COMPONENT")
|
||||||
fi
|
fi
|
||||||
@ -1726,46 +1662,34 @@ devbox_stop_command() {
|
|||||||
# Stop the specified components
|
# Stop the specified components
|
||||||
for comp in "${COMPONENTS[@]}"; do
|
for comp in "${COMPONENTS[@]}"; do
|
||||||
case "$comp" in
|
case "$comp" in
|
||||||
"mongodb")
|
|
||||||
echo "==> Stopping MongoDB..."
|
|
||||||
if [[ -f "${WORKING_HOME}/.mongodb-instance" ]]; then
|
|
||||||
local container_id
|
|
||||||
container_id=$(cat "${WORKING_HOME}/.mongodb-instance")
|
|
||||||
docker stop "$container_id" &>/dev/null || true
|
|
||||||
else
|
|
||||||
echo "==> MongoDB container is not running."
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"rabbitmq")
|
|
||||||
echo "==> Stopping RabbitMQ..."
|
|
||||||
if [[ -f "${WORKING_HOME}/.rabbitmq-instance" ]]; then
|
|
||||||
local container_id
|
|
||||||
container_id=$(cat "${WORKING_HOME}/.rabbitmq-instance")
|
|
||||||
docker stop "$container_id" &>/dev/null || true
|
|
||||||
else
|
|
||||||
echo "==> RabbitMQ container is not running."
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"devbox")
|
"devbox")
|
||||||
echo "==> Stopping devbox..."
|
|
||||||
if [[ -f "${WORKING_HOME}/.devbox-instance" ]]; then
|
if [[ -f "${WORKING_HOME}/.devbox-instance" ]]; then
|
||||||
local container_id
|
local container_id
|
||||||
container_id=$(cat "${WORKING_HOME}/.devbox-instance")
|
container_id=$(cat "${WORKING_HOME}/.devbox-instance")
|
||||||
docker stop "$container_id" &>/dev/null || true
|
if docker ps --no-trunc --format '{{.ID}}' | grep -q "^${container_id}\$"; then
|
||||||
# Remove the frontend and backend pid files
|
echo "==> Stopping devbox..."
|
||||||
rm -f "${WORKING_HOME}/.backend.pid"
|
docker stop "$container_id" &>/dev/null || true
|
||||||
rm -f "${WORKING_HOME}/.frontend.pid"
|
# Remove the frontend and backend pid files
|
||||||
|
rm -f "${WORKING_HOME}/.backend.pid"
|
||||||
|
rm -f "${WORKING_HOME}/.frontend.pid"
|
||||||
|
else
|
||||||
|
echo "==> DevBox container is not running."
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo "==> Backend service is not running."
|
echo "==> Backend service is not running."
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"devsvc" | "notification" | "content" | "central_storage" | "authentication")
|
"gitea"| "mongodb"| "rabbitmq" | "devsvc" | "notification" | "content" | "central_storage" | "authentication")
|
||||||
echo "==> Stopping $comp service..."
|
|
||||||
if [[ -f "${WORKING_HOME}/.${comp}-instance" ]]; then
|
if [[ -f "${WORKING_HOME}/.${comp}-instance" ]]; then
|
||||||
local container_id
|
local container_id
|
||||||
container_id=$(cat "${WORKING_HOME}/.${comp}-instance")
|
container_id=$(cat "${WORKING_HOME}/.${comp}-instance")
|
||||||
docker stop "$container_id" &>/dev/null || true
|
if docker ps --no-trunc --format '{{.ID}}' | grep -q "^${container_id}\$"; then
|
||||||
|
echo "==> Stopping $comp service..."
|
||||||
|
docker stop "$container_id" &>/dev/null || true
|
||||||
|
else
|
||||||
|
echo "==> $comp service is not running."
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo "==> $comp service is not running."
|
echo "==> $comp service is not running."
|
||||||
fi
|
fi
|
||||||
@ -1775,9 +1699,8 @@ devbox_stop_command() {
|
|||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
echo "==> $comp service stopped successfully."
|
|
||||||
done
|
done
|
||||||
echo "==> DevBox services stopped successfully."
|
echo "==> All conponent services stopped successfully."
|
||||||
}
|
}
|
||||||
|
|
||||||
# :command.function
|
# :command.function
|
||||||
@ -1895,19 +1818,6 @@ devbox_restart_command() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
local devbox_container_id=$(cat "$devbox_container_id_file_path")
|
local devbox_container_id=$(cat "$devbox_container_id_file_path")
|
||||||
if ! docker ps -a --no-trunc --format '{{.ID}}' | grep -q "^${devbox_container_id}\$"; then
|
|
||||||
echo "ERROR: DevBox container is not running. Please run 'devbox init' first."
|
|
||||||
rm -f "$devbox_container_id_file_path"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if docker ps --no-trunc --format '{{.ID}}' | grep -q "^${devbox_container_id}\$"; then
|
|
||||||
echo "==> DevBox container is running."
|
|
||||||
else
|
|
||||||
echo "==> DevBox container is not running."
|
|
||||||
docker start "$devbox_container_id" &>/dev/null || true
|
|
||||||
sleep 20
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if current environment is using local components
|
# Check if current environment is using local components
|
||||||
USE_LOCAL_COMPONENT=$(cat "${WORKING_HOME}/.use-local-component" 2>/dev/null || true)
|
USE_LOCAL_COMPONENT=$(cat "${WORKING_HOME}/.use-local-component" 2>/dev/null || true)
|
||||||
@ -1935,41 +1845,11 @@ devbox_restart_command() {
|
|||||||
# Stop the specified components
|
# Stop the specified components
|
||||||
for comp in "${COMPONENTS[@]}"; do
|
for comp in "${COMPONENTS[@]}"; do
|
||||||
case "$comp" in
|
case "$comp" in
|
||||||
"gitea")
|
|
||||||
echo "==> Stopping Gitea..."
|
|
||||||
if [[ -f "${WORKING_HOME}/.gitea-instance" ]]; then
|
|
||||||
local container_id
|
|
||||||
container_id=$(cat "${WORKING_HOME}/.gitea-instance")
|
|
||||||
docker stop "$container_id" &>/dev/null || true
|
|
||||||
else
|
|
||||||
echo "==> Gitea container is not running."
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"mongodb")
|
|
||||||
echo "==> Stopping MongoDB..."
|
|
||||||
if [[ -f "${WORKING_HOME}/.mongodb-instance" ]]; then
|
|
||||||
local container_id
|
|
||||||
container_id=$(cat "${WORKING_HOME}/.mongodb-instance")
|
|
||||||
docker stop "$container_id" &>/dev/null || true
|
|
||||||
else
|
|
||||||
echo "==> MongoDB container is not running."
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"rabbitmq")
|
|
||||||
echo "==> Stopping RabbitMQ..."
|
|
||||||
if [[ -f "${WORKING_HOME}/.rabbitmq-instance" ]]; then
|
|
||||||
local container_id
|
|
||||||
container_id=$(cat "${WORKING_HOME}/.rabbitmq-instance")
|
|
||||||
docker stop "$container_id" &>/dev/null || true
|
|
||||||
else
|
|
||||||
echo "==> RabbitMQ container is not running."
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"devbox")
|
"devbox")
|
||||||
echo "==> Stopping devbox service..."
|
|
||||||
if [[ -f "${WORKING_HOME}/.devbox-instance" ]]; then
|
if [[ -f "${WORKING_HOME}/.devbox-instance" ]]; then
|
||||||
local container_id
|
local container_id
|
||||||
container_id=$(cat "${WORKING_HOME}/.devbox-instance")
|
container_id=$(cat "${WORKING_HOME}/.devbox-instance")
|
||||||
|
echo "==> Stopping devbox service..."
|
||||||
docker stop "$container_id" &>/dev/null || true
|
docker stop "$container_id" &>/dev/null || true
|
||||||
|
|
||||||
# Remove the frontend and backend pid files
|
# Remove the frontend and backend pid files
|
||||||
@ -1980,11 +1860,12 @@ devbox_restart_command() {
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"devsvc" | "notification" | "content" | "central_storage" | "authentication")
|
"gitea" | "mongodb" | "rabbitmq" | "devsvc" | "notification" | "content" | "central_storage" | "authentication")
|
||||||
echo "==> Stopping $comp service..."
|
|
||||||
if [[ -f "${WORKING_HOME}/.${comp}-instance" ]]; then
|
if [[ -f "${WORKING_HOME}/.${comp}-instance" ]]; then
|
||||||
local container_id
|
local container_id
|
||||||
container_id=$(cat "${WORKING_HOME}/.${comp}-instance")
|
container_id=$(cat "${WORKING_HOME}/.${comp}-instance")
|
||||||
|
echo "==> Stopping $comp service..."
|
||||||
docker stop "$container_id" &>/dev/null || true
|
docker stop "$container_id" &>/dev/null || true
|
||||||
else
|
else
|
||||||
echo "==> $comp service is not running."
|
echo "==> $comp service is not running."
|
||||||
@ -2000,47 +1881,7 @@ devbox_restart_command() {
|
|||||||
# Start the specified components
|
# Start the specified components
|
||||||
for comp in "${COMPONENTS[@]}"; do
|
for comp in "${COMPONENTS[@]}"; do
|
||||||
case "$comp" in
|
case "$comp" in
|
||||||
"gitea")
|
"gitea" | "mongodb" | "rabbitmq" | "devbox" | "devsvc" | "notification" | "content" | "central_storage" | "authentication")
|
||||||
echo "==> Restarting Gitea..."
|
|
||||||
if [[ -f "${WORKING_HOME}/.gitea-instance" ]]; then
|
|
||||||
local container_id
|
|
||||||
container_id=$(cat "${WORKING_HOME}/.gitea-instance")
|
|
||||||
docker start "$container_id" &>/dev/null || true
|
|
||||||
else
|
|
||||||
echo "==> Gitea container is not running."
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"mongodb")
|
|
||||||
echo "==> Restarting MongoDB..."
|
|
||||||
if [[ -f "${WORKING_HOME}/.mongodb-instance" ]]; then
|
|
||||||
local container_id
|
|
||||||
container_id=$(cat "${WORKING_HOME}/.mongodb-instance")
|
|
||||||
docker start "$container_id" &>/dev/null || true
|
|
||||||
else
|
|
||||||
echo "==> MongoDB container is not running."
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"rabbitmq")
|
|
||||||
echo "==> Restarting RabbitMQ..."
|
|
||||||
if [[ -f "${WORKING_HOME}/.rabbitmq-instance" ]]; then
|
|
||||||
local container_id
|
|
||||||
container_id=$(cat "${WORKING_HOME}/.rabbitmq-instance")
|
|
||||||
docker start "$container_id" &>/dev/null || true
|
|
||||||
else
|
|
||||||
echo "==> RabbitMQ container is not running."
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"devbox")
|
|
||||||
echo "==> Restarting devbox service..."
|
|
||||||
if [[ -f "${WORKING_HOME}/.devbox-instance" ]]; then
|
|
||||||
local container_id
|
|
||||||
container_id=$(cat "${WORKING_HOME}/.devbox-instance")
|
|
||||||
docker start "$container_id" &>/dev/null || true
|
|
||||||
else
|
|
||||||
echo "==> Devbox is not running."
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"devsvc" | "notification" | "content" | "central_storage" | "authentication")
|
|
||||||
echo "==> Restarting $comp service..."
|
echo "==> Restarting $comp service..."
|
||||||
if [[ -f "${WORKING_HOME}/.${comp}-instance" ]]; then
|
if [[ -f "${WORKING_HOME}/.${comp}-instance" ]]; then
|
||||||
local container_id
|
local container_id
|
||||||
@ -2058,6 +1899,14 @@ devbox_restart_command() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
if [[ "$FREELEAPS_ENDPOINT" == "true" ]]; then
|
if [[ "$FREELEAPS_ENDPOINT" == "true" ]]; then
|
||||||
|
# Sleep for 10 seconds to allow the services to start and echo 10 seconds increase from 1 to 10 in each second
|
||||||
|
for i in {1..20}; do
|
||||||
|
if docker ps --no-trunc --format '{{.ID}}' | grep -q "^${devbox_container_id}\$"; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
echo -n "-"
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
# Start the backend and frontend services
|
# Start the backend and frontend services
|
||||||
docker exec -i "$devbox_container_id" bash <<EOF
|
docker exec -i "$devbox_container_id" bash <<EOF
|
||||||
# Start the backend and frontend services
|
# Start the backend and frontend services
|
||||||
@ -2661,8 +2510,6 @@ devbox_init_parse_requirements() {
|
|||||||
if [ -z "$(get_arg '--use-local-component')" ]; then
|
if [ -z "$(get_arg '--use-local-component')" ]; then
|
||||||
add_arg '--use-local-component' "false"
|
add_arg '--use-local-component' "false"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user