我最近一直在构建一些 python Docker 镜像。最佳实践显然是不要以 root 用户身份运行容器并删除非特权用户的 sudo 权限。
但我一直想知道解决这个问题的最佳方法是什么。
这是一个 Dockerfile 示例
FROM python:3.10
## get UID/GID of host user for remapping to access bindmounts on host
ARG UID
ARG GID
## add a user with same GID and UID as the host user that owns the workspace files on the host (bind mount)
RUN adduser --uid ${UID} --gid ${GID} --no-create-home flaskuser
RUN usermod -aG sudo flaskuser
## install packages as root?
RUN apt update \
&& apt upgrade -y …Run Code Online (Sandbox Code Playgroud) 我试图find在 linux 中执行时排除隐藏的文件和文件夹。
我必须排除以点 (.hidden) 开头的文件或文件夹,但也必须排除以 @ 开头的文件夹(如 @eaDir)。
到目前为止,我有以下命令似乎有效,但也许有更优雅的方法?
find /path/to/start/search/ -not -path '*@eaDir*' -not -path "*/\.*" -type f -mtime -2
Run Code Online (Sandbox Code Playgroud)
我确实看到了使用正则表达式的示例,如下所示:
find . \( ! -regex '.*/\..*' \) -type f
Run Code Online (Sandbox Code Playgroud)
但不确定如何使用@eaDir该-regex选项排除目录?
我相信也可能存在以两个点开头的隐藏文件?就像“..隐藏”?我的命令是否已经涵盖了这一点,或者我是否只是添加第三个选项(例如-not -path "*/\..*"也排除这些选项)?
然后我看到了一些使用示例-prune,以便 find 不会下降到隐藏目录中,但是我不确定如何在我的示例中使用这个正确性。我对此很感兴趣,以加快速度。
谢谢!