如何将文件复制到 docker 中每个用户的 space

How to copy files to each user's space in docker

我正在编写一个 docker 文件来对我编写的 R 包进行评估。该软件包安装在 RStudio 服务器中。我的 docker 文件继承自 FROM rocker/rstudio。我希望 docker 文件安装所有内容(它所做的)并创建 20 个用户(user1、user2、...、user20)作为测试对象。每个测试对象还应该有一个数据文件夹 (/home/data) 来包含一些 CSV 文件。 稍后当容器为 运行 时,RStudio 的 Web 界面允许测试对象使用刚刚创建的用户凭据登录。他们可以访问自己的数据、执行测试并在主目录中生成一些新文件。

我可以使用 RUN useradd -ms /bin/bash user1 创建用户并将当前用户设置为用户 USER user1,但不知道如何将文件与 Dockerfile 一起传输。

注意 1:我不喜欢将文件放在主机上并与 docker 用户共享的做法。相反,我想让它们与 Dockerfile 一起发送,并在构建 Dockerfile 和 运行 时将它们添加到图像和容器中。 注2:我需要做的评估是reproducible方式,因为我需要重复几次。

您可以在 docker 文件中使用 COPYADD 命令将文件导入您的 docker 机器。查看 here 了解更多信息。