如果您尝试附加到没有写权限的文件(例如,由 root 拥有并具有 0440 权限的 /etc/sudoers 文件),如果您是实际的 root 用户,这将起作用。但是,如果您是另一个使用 sudo 的用户,则会收到权限被拒绝错误。
为什么是这样?这不是因为文件的所有权 - 它也不适用于普通用户拥有的文件。真正的 root 用户似乎拥有比 sudo 授予的更多权限。这样做的理由是什么?有没有办法向使用 sudo 的用户授予此权限?
docker build 似乎不会覆盖它之前复制的文件。我有一个带有多个复制指令的 dockerfile,并且在较早的 COPY 指令中涉及的文件不会被后来的指令覆盖。
一个简化的示例(尽管如果第一个副本是恰好包含相关文件的整个目录也会发生这种情况):
COPY docker/config/file1.yml $BASE/config/thatfile.yml
COPY docker/config/file2.yml $BASE/config/thatfile.yml
Run Code Online (Sandbox Code Playgroud)
构建后,$BASE/config/thatfile.yml 包含 file1.yml 的内容。有没有办法让它包含file2.yml的内容?
我在这里的主要用例是复制整个配置文件文件夹,然后替换特定构建的选择配置文件。