gitea/4.sh
2025-03-14 17:25:10 +08:00

29 lines
1.8 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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>'
# 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>'