添加 4.sh

This commit is contained in:
lqs 2025-03-14 17:24:45 +08:00
parent e6471f178a
commit f4c401cde0

29
4.sh Normal file
View File

@ -0,0 +1,29 @@
docker exec -u <OS_USERNAME> -it -w <--tempdir> $(docker ps -qf 'name=^<NAME_OF_DOCKER_CONTAINER>$') bash -c '/usr/local/bin/gitea dump -c </path/to/app.ini>'
``` shell
# docker exec 命令用于在运行的 Docker 容器中执行命令
# -u <OS_USERNAME> 选项指定在容器中执行命令时使用的操作系统用户名
# 这样可以确保命令以指定用户的权限运行,避免使用默认的 root 用户权限带来的安全风险
docker exec -u <OS_USERNAME> \
# -it 选项组合了两个功能:
# -i 表示保持标准输入打开,允许用户与容器进行交互
# -t 表示为容器分配一个伪终端,模拟一个交互式的终端环境
-it \
# -w <--tempdir> 选项指定在容器中执行命令时的工作目录
# 即命令将在该目录下执行,方便定位和管理相关文件
-w <--tempdir> \
# $(docker ps -qf 'name=^<NAME_OF_DOCKER_CONTAINER>$') 是一个命令替换
# docker ps -qf 'name=^<NAME_OF_DOCKER_CONTAINER>$' 用于查找正在运行的容器
# -q 选项只返回容器的 ID而不返回其他详细信息
# -f 'name=^<NAME_OF_DOCKER_CONTAINER>$' 是一个过滤条件,用于精确匹配容器名称
# ^ 和 $ 分别表示名称的开始和结束,确保只匹配完全符合指定名称的容器
$(docker ps -qf 'name=^<NAME_OF_DOCKER_CONTAINER>$') \
# bash -c 用于在容器中执行一个 bash 命令
# 它允许我们将一个复杂的命令作为字符串传递给 bash 解释器执行
bash -c \
# '/usr/local/bin/gitea dump -c </path/to/app.ini>' 是要在容器中执行的具体命令
# /usr/local/bin/gitea 是 Gitea 应用程序的可执行文件路径
# dump 是 Gitea 的一个子命令,用于创建 Gitea 实例的备份
# -c </path/to/app.ini> 选项指定 Gitea 配置文件的路径
# 配置文件包含了 Gitea 的各种设置,如数据库连接信息、存储路径等
'/usr/local/bin/gitea dump -c </path/to/app.ini>'
```