在docker run中创建文件的位置?本地机器或码头图像

时间:2017-05-24 07:21:25

标签: ruby-on-rails docker dockerfile

这是我在stackoverflow中的第一个问题:)) 当我使用docker在链接https://docs.docker.com/compose/rails/#define-the-project后启动我的rails应用程序时。

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容器而不是本地机器中创建。但为什么需要最后一个命令“ADD./ myapp”?因为该命令将本地计算机中的当前文件夹添加到docker容器中的/ myapp文件夹中。

谢谢。

1 个答案:

答案 0 :(得分:1)

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

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

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

  3. ADD Gemfile /myapp/GemfileADD Gemfile.lock /myapp/Gemfile.lock :将您的收件人GemfileGemfile.lock添加到/myapp/

  4. RUN bundle install:安装Gemfile

  5. 的依赖关系
  6. ADD . /myapp:将您的应用程序代码添加到/myapp目录(仅限新文件)。

  7. 如果您需要有关此命令的更多信息,请检查ADD命令的Dockerfile参考:https://docs.docker.com/engine/reference/builder/#add

    希望这有帮助,祝你好运,欢迎来到SO!