#!/bin/bash # Claude Code Arch Linux Docker環境の起動スクリプト set -e # カラー出力の定義 GREEN='\033[0;32m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' # No Color # 使用方法の表示 usage() { echo "使用方法: $0 [オプション]" echo "オプション:" echo " build - Dockerイメージをビルド" echo " start - コンテナを起動" echo " stop - コンテナを停止" echo " shell - コンテナ内でシェルを起動" echo " clean - コンテナとボリュームを削除" echo " logs - コンテナのログを表示" exit 1 } # Dockerイメージのビルド build() { echo -e "${GREEN}Arch Linux Dockerイメージをビルドしています...${NC}" docker-compose build --no-cache echo -e "${GREEN}ビルド完了!${NC}" } # コンテナの起動 start() { echo -e "${GREEN}コンテナを起動しています...${NC}" docker-compose up -d echo -e "${GREEN}起動完了!${NC}" echo -e "${YELLOW}シェルに接続するには: $0 shell${NC}" } # コンテナの停止 stop() { echo -e "${YELLOW}コンテナを停止しています...${NC}" docker-compose down echo -e "${GREEN}停止完了!${NC}" } # シェルへの接続 shell() { echo -e "${GREEN}Arch Linuxコンテナに接続しています...${NC}" docker-compose exec -u claude claude-arch /bin/zsh } # クリーンアップ clean() { echo -e "${RED}警告: この操作はコンテナとボリュームを削除します!${NC}" read -p "続行しますか? (y/N): " -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then docker-compose down -v echo -e "${GREEN}クリーンアップ完了!${NC}" else echo -e "${YELLOW}キャンセルしました${NC}" fi } # ログの表示 logs() { docker-compose logs -f claude-arch } # メイン処理 case "$1" in build) build ;; start) start ;; stop) stop ;; shell) shell ;; clean) clean ;; logs) logs ;; *) usage ;; esac