mirror of
https://github.com/crmeb/CRMEB.git
synced 2026-10-28 21:40:50 +00:00
【docker】fix(docker): 优化文件权限管理与清理逻辑
This commit is contained in:
parent
edebac1f9d
commit
8c9c838bd6
@ -158,10 +158,14 @@ clean-lock:
|
||||
# 清理 MySQL 数据
|
||||
clean-mysql:
|
||||
@echo -e "$(YELLOW)清理 MySQL 数据...$(NC)"
|
||||
@if [ -d "mysql/data" ] && [ -n "$(ls -A mysql/data 2>/dev/null)" ]; then \
|
||||
@if [ -d "mysql/data" ] && [ -n "$$(ls -A mysql/data 2>/dev/null)" ]; then \
|
||||
rm -rf mysql/data/*; \
|
||||
echo "已清空 MySQL 数据目录"; \
|
||||
fi
|
||||
@if [ -d "mysql/log" ] && [ -n "$$(ls -A mysql/log 2>/dev/null)" ]; then \
|
||||
rm -rf mysql/log/*; \
|
||||
echo "已清空 MySQL 日志目录"; \
|
||||
fi
|
||||
|
||||
# 清理 runtime 缓存
|
||||
clean-runtime:
|
||||
@ -175,10 +179,10 @@ clean-runtime:
|
||||
set-permission:
|
||||
@echo -e "$(YELLOW)设置目录权限...$(NC)"
|
||||
@chmod -R 777 $(PHP_RUNTIME_LOCAL) 2>/dev/null || true
|
||||
@chmod -R 777 $(PHP_APP_LOCAL)/public 2>/dev/null || true
|
||||
@chmod 777 $(PHP_APP_LOCAL)/.env 2>/dev/null || true
|
||||
@chmod 777 $(PHP_APP_LOCAL)/.version 2>/dev/null || true
|
||||
@chmod 777 $(PHP_APP_LOCAL)/.constant 2>/dev/null || true
|
||||
@chmod -R 777 $(PHP_APP_LOCAL)/public/uploads 2>/dev/null || true
|
||||
@chmod 666 $(PHP_APP_LOCAL)/.env 2>/dev/null || true
|
||||
@chmod 666 $(PHP_APP_LOCAL)/.version 2>/dev/null || true
|
||||
@chmod 666 $(PHP_APP_LOCAL)/.constant 2>/dev/null || true
|
||||
|
||||
# 清理网络
|
||||
clean-network:
|
||||
@ -239,8 +243,21 @@ delete:
|
||||
@echo -e "$(YELLOW)删除容器和数据...$(NC)"
|
||||
@$(COMPOSE_COMMAND) down -v
|
||||
@rm -rf $(MYSQL_DATA_LOCAL)/* 2>/dev/null || true
|
||||
@rm -rf $(MYSQL_LOG_LOCAL)/* 2>/dev/null || true
|
||||
@rm -rf $(PHP_RUNTIME_LOCAL)/* 2>/dev/null || true
|
||||
@rm -f $(PHP_APP_LOCAL)/public/install.lock 2>/dev/null || true
|
||||
@echo -e "$(YELLOW)还原文件权限...$(NC)"
|
||||
@if [ -d "$(PHP_APP_LOCAL)/.git" ] || [ -d "$(PHP_APP_LOCAL)/../.git" ]; then \
|
||||
git -C $(PHP_APP_LOCAL) restore -SW . 2>/dev/null || true; \
|
||||
else \
|
||||
chmod 644 $(PHP_APP_LOCAL)/.env 2>/dev/null || true; \
|
||||
chmod 644 $(PHP_APP_LOCAL)/.version 2>/dev/null || true; \
|
||||
chmod 644 $(PHP_APP_LOCAL)/.constant 2>/dev/null || true; \
|
||||
find $(PHP_APP_LOCAL)/public/uploads -type d -exec chmod 755 {} \; 2>/dev/null || true; \
|
||||
find $(PHP_APP_LOCAL)/public/uploads -type f -exec chmod 644 {} \; 2>/dev/null || true; \
|
||||
find $(PHP_APP_LOCAL)/public/static -type d -exec chmod 755 {} \; 2>/dev/null || true; \
|
||||
find $(PHP_APP_LOCAL)/public/static -type f -exec chmod 644 {} \; 2>/dev/null || true; \
|
||||
fi
|
||||
@echo -e "$(GREEN)=== 已删除 ===$(NC)"
|
||||
|
||||
# 查看日志
|
||||
|
||||
@ -137,10 +137,12 @@ cleanup() {
|
||||
# 设置目录权限为 777
|
||||
echo "设置目录权限..."
|
||||
[ -n "$PHP_RUNTIME_LOCAL" ] && chmod -R 777 "$PHP_RUNTIME_LOCAL" 2>/dev/null
|
||||
[ -n "$PHP_APP_LOCAL" ] && chmod -R 777 "$PHP_APP_LOCAL/public" 2>/dev/null
|
||||
[ -n "$PHP_APP_LOCAL" ] && chmod 777 "$PHP_APP_LOCAL/.env" 2>/dev/null
|
||||
[ -n "$PHP_APP_LOCAL" ] && chmod 777 "$PHP_APP_LOCAL/.version" 2>/dev/null
|
||||
[ -n "$PHP_APP_LOCAL" ] && chmod 777 "$PHP_APP_LOCAL/.constant" 2>/dev/null
|
||||
# 只设置需要写入的 public 子目录权限
|
||||
[ -n "$PHP_APP_LOCAL" ] && chmod -R 777 "$PHP_APP_LOCAL/public/uploads" 2>/dev/null
|
||||
# 配置文件设置为可写(不改变可执行位)
|
||||
[ -n "$PHP_APP_LOCAL" ] && chmod 666 "$PHP_APP_LOCAL/.env" 2>/dev/null
|
||||
[ -n "$PHP_APP_LOCAL" ] && chmod 666 "$PHP_APP_LOCAL/.version" 2>/dev/null
|
||||
[ -n "$PHP_APP_LOCAL" ] && chmod 666 "$PHP_APP_LOCAL/.constant" 2>/dev/null
|
||||
}
|
||||
|
||||
# 清理网络
|
||||
@ -217,8 +219,22 @@ do_delete() {
|
||||
echo -e "${YELLOW}=== 删除容器和数据 ===${NC}"
|
||||
docker-compose -f "$COMPOSE_FILE" down -v
|
||||
[ -n "$MYSQL_DATA_LOCAL" ] && rm -rf "$MYSQL_DATA_LOCAL"/* 2>/dev/null
|
||||
[ -n "$MYSQL_LOG_LOCAL" ] && rm -rf "$MYSQL_LOG_LOCAL"/* 2>/dev/null
|
||||
[ -n "$PHP_RUNTIME_LOCAL" ] && rm -rf "$PHP_RUNTIME_LOCAL"/* 2>/dev/null
|
||||
[ -n "$PHP_APP_LOCAL" ] && rm -f "$PHP_APP_LOCAL/public/install.lock" 2>/dev/null
|
||||
# 还原文件权限
|
||||
echo "还原文件权限..."
|
||||
if [ -d "$PHP_APP_LOCAL/.git" ] || [ -d "$PHP_APP_LOCAL/../.git" ]; then
|
||||
git -C "$PHP_APP_LOCAL" restore -SW .
|
||||
else
|
||||
[ -n "$PHP_APP_LOCAL" ] && chmod 644 "$PHP_APP_LOCAL/.env" 2>/dev/null
|
||||
[ -n "$PHP_APP_LOCAL" ] && chmod 644 "$PHP_APP_LOCAL/.version" 2>/dev/null
|
||||
[ -n "$PHP_APP_LOCAL" ] && chmod 644 "$PHP_APP_LOCAL/.constant" 2>/dev/null
|
||||
[ -n "$PHP_APP_LOCAL" ] && find "$PHP_APP_LOCAL/public/uploads" -type d -exec chmod 755 {} \; 2>/dev/null
|
||||
[ -n "$PHP_APP_LOCAL" ] && find "$PHP_APP_LOCAL/public/uploads" -type f -exec chmod 644 {} \; 2>/dev/null
|
||||
[ -n "$PHP_APP_LOCAL" ] && find "$PHP_APP_LOCAL/public/static" -type d -exec chmod 755 {} \; 2>/dev/null
|
||||
[ -n "$PHP_APP_LOCAL" ] && find "$PHP_APP_LOCAL/public/static" -type f -exec chmod 644 {} \; 2>/dev/null
|
||||
fi
|
||||
echo -e "${GREEN}=== 已删除 ===${NC}"
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user