#!/bin/bash # ファイルフルパス INITIAL_DIR=$(pwd) LOG_FILE="$INITIAL_DIR/logfile.log" ODMS_CLOUD_DIR="../" # ログ関数 log_message() { echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE" } # 1: ODMS Cloudにディレクトリ変更docker-compose up実行 cd $ODMS_CLOUD_DIR 2>>"$LOG_FILE" if [ $? -ne 0 ]; then log_message "ERROR: Failed to navigate to /ODMS%Cloud/" exit 1 else log_message "Navigated to /ODMS%Cloud/" fi log_message "Running docker-compose up -d" docker-compose up -d 2>>"$LOG_FILE" if [ $? -ne 0 ]; then log_message "ERROR: Failed to run docker-compose up -d" exit 1 else log_message "Successfully ran docker-compose up -d" fi # 2: dictation_serverコンテナプロセス存在確認、停止 CONTAINER_EXISTS=$(docker ps -a --filter "name=dictation_server_dev_container" --format "{{.ID}}") if [ -n "$CONTAINER_EXISTS" ]; then log_message "Stopping existing Dev Container..." docker stop "$CONTAINER_EXISTS" >>"$LOG_FILE" 2>&1 if [ $? -ne 0 ]; then log_message "ERROR: Failed to remove the Dev Container." exit 1 else log_message "Dev Container removed successfully." fi fi # 3: dictation_serverをDevContainerに起動 log_message "Starting Dev Container in dictation_server/" devcontainer up --workspace-folder "dictation_server/" 2>>"$LOG_FILE" if [ $? -ne 0 ]; then log_message "ERROR: Failed to start Dev Container in dictation_server/" exit 1 else log_message "Dev Container started in dictation_server/" fi # DevContainerの起動待ち log_message "Waiting for Dev Container to be ready..." sleep 5 # 4: コンテナーID・名取得 log_message "Retrieving the container ID of the Dev Container" CONTAINER_ID=$(docker ps --filter "label=devcontainer.local_folder=$(pwd)/dictation_server" --format "{{.ID}}") if [ -z "$CONTAINER_ID" ]; then log_message "ERROR: Could not find the Dev Container for dictation_server/" exit 1 else log_message "Found Dev Container with ID: $CONTAINER_ID" fi # 5: docker execでDev Containerに'npm install'実行 COMMAND="npm install" log_message "Executing command inside Dev Container: $COMMAND" docker exec --user vscode "$CONTAINER_ID" $COMMAND >>"$LOG_FILE" 2>&1 if [ $? -ne 0 ]; then log_message "ERROR: Command execution failed inside Dev Container" exit 1 else log_message "Command executed successfully inside Dev Container" fi # 6: 'npm run migrate:up' 実行 COMMAND="npm run migrate:up" log_message "Executing command inside Dev Container: $COMMAND" docker exec --user vscode "$CONTAINER_ID" $COMMAND >>"$LOG_FILE" 2>&1 if [ $? -ne 0 ]; then log_message "ERROR: Command execution failed inside Dev Container" exit 1 else log_message "Command executed successfully inside Dev Container" fi # 7: 'npm run start'実行 COMMAND="npm run start" log_message "Executing command inside Dev Container: $COMMAND" docker exec --user vscode "$CONTAINER_ID" $COMMAND