关于rails上的ruby:在docker run中创建文件的位置?

where files are created in docker run? local machine or docker image

这是我在stackoverflow中的第一个问题。)当我使用docker启动我的Rails应用程序时,链接https://docs.docker.com/compose/rails/定义项目。

1
2
3
4
5
6
7
8
FROM ruby:2.3.3
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs    <- this install dependencies into docker container
RUN mkdir /myapp   <- this create myapp folder into docker container
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
ADD Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
ADD . /myapp       <- my confused there

如果命令"run bundle install"与"run mkdir/myapp"相同,那么我的项目骨架文件将在docker容器中创建,而不是在本地计算机中创建。但是为什么需要最后一个命令"添加"。MyApp?因为该命令将本地计算机中的当前文件夹添加到docker容器中的/myapp文件夹中。

谢谢您。


ADD命令复制容器的/myapp目录中当前主机目录(仅新文件)的内容。

  • RUN mkdir /myapp:在容器内创建一个空的/myapp目录。

  • WORKDIR /myapp:将/myapp设置为容器内的工作目录。

  • ADD Gemfile /myapp/GemfileADD Gemfile.lock /myapp/Gemfile.lock
    :将您的主机GemfileGemfile.lock添加到/myapp/中。

  • RUN bundle install:安装Gemfile的依赖项

  • ADD . /myapp:将应用程序代码添加到/myapp目录(仅新文件)。

  • 如果需要有关此命令的更多信息,请检查ADD命令的dockerfile引用:https://docs.docker.com/engine/reference/builder/add

    希望这对您有所帮助,祝您好运,欢迎光临!