在docker运行创build文件? 本地机器或docker图像

这是我的第一个问题在stackoverflow :))当我启动我的轨道应用程序与泊坞窗下面的链接https://docs.docker.com/compose/rails/#define-the-project 。

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

谢谢。

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

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

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

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

  4. RUN bundle install :安装Gemfile依赖关系

  5. ADD . /myapp ADD . /myapp :将您的应用程序代码添加到/myapp目录(只有新文件)。

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

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