# 引用 .env 文件中的变量 include .env export $(shell sed 's/=.*//' .env) .PHONY: help build up down restart logs shell clean ssh # 默认目标:显示帮助 help: @echo "🛠️ Maven + Java + Bun 开发环境管理工具" @echo "==================================================" @echo "make build - 构建镜像" @echo "make up - 启动容器 (后台模式)" @echo "make down - 停止并移除容器" @echo "make restart - 重启容器" @echo "make logs - 查看容器日志" @echo "make shell - 进入容器终端 (Bash)" @echo "make ssh - 使用 SSH 连接容器 (测试连接)" @echo "make clean - ⚠️ 深度清理 (移除容器、镜像和挂载的数据目录)" @echo "==================================================" @echo "当前配置:" @echo " SSH端口: $(SSH_PORT)" @echo " 代码路径: $(PROJECT_DIR)" # 构建镜像 build: @echo "📦 正在构建镜像 $(IMAGE_NAME):$(IMAGE_TAG)..." @docker compose build # 启动容器 up: @echo "🚀 正在启动开发环境..." @docker compose up -d @echo "✅ 服务已启动!" @echo " - SSH 连接: ssh -p $(SSH_PORT) root@localhost (密码: root)" @echo " - Zed 连接: ssh://root@localhost:$(SSH_PORT)" # 停止容器 down: @echo "🛑 正在停止容器..." @docker compose down # 重启 restart: down up # 查看日志 logs: @docker compose logs -f # 进入 Shell (通过 Docker exec) shell: @docker exec -it $(CONTAINER_NAME) bash # SSH 连接测试 ssh: @ssh -p $(SSH_PORT) -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@localhost # 深度清理 (危险操作) clean: down @echo "⚠️ 正在清理..." @read -p "确定要删除持久化数据目录 $(DATA_DIR) 吗? [y/N] " ans && [ $${ans:-N} = y ] || (echo "已取消"; exit 1) @rm -rf $(DATA_DIR) @echo "🧹 清理完成"