Docker - 将文件添加到 Alpine 根目录

Docker - Adding a file to Alpine root

我试图将本地文件(.vimrc 文件)复制到 Docker Alpine 映像。
Alpine的root目录好像叫~。 (这有点奇怪,因为在 Debian 世界中 ~ 通常是 home
init.vim 文件需要在 root/~.
我尝试了不同的方法,即 COPY 命令和 RUN cp ...
但是 ~/.config/nvim 文件夹仍然是空的。
(mkdir 命令有效)
我能够复制到 home/.config/nvim,但文件在那里没有效果,它需要在 ~
root目录在Alpine中是只读的(即使对于root用户)?

FROM alpine

RUN apk add neovim
RUN apk add neovim-doc

RUN mkdir ~/.config
RUN mkdir ~/.config/nvim

ADD init.vim ~/.config/nvim/

在 alpine 图像中 ~ 别名等于 /root 文件夹

但是符号没有在 Dockerfile 中解释

所以它将被视为一个字符串,它将在 / 调用中创建一个子文件夹 ~

要复制到好的文件夹中,我建议您使用包含预期值

的变量$HOME

但默认情况下 ADD 和 COPY 无权访问 $HOME

一种方法是定义您要使用的 HOME 变量

您的 Dockerfile 将如下所示:

FROM alpine
ENV HOME /root
RUN apk add neovim
RUN apk add neovim-doc

RUN mkdir $HOME/.config
RUN mkdir $HOME/.config/nvim

COPY init.vim $HOME/.config/nvim/