在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
目录中。
-
RUN mkdir /myapp
:在容器内创build一个空的/myapp
目录。 -
WORKDIR /myapp
:将/myapp
设置为容器内的工作目录。 -
ADD Gemfile /myapp/Gemfile
和ADD Gemfile.lock /myapp/Gemfile.lock
:将您的主机Gemfile
和Gemfile.lock
添加到/myapp/
。 -
RUN bundle install
:安装Gemfile
依赖关系 -
ADD . /myapp
ADD . /myapp
:将您的应用程序代码添加到/myapp
目录(只有新文件)。
如果您需要有关此命令的更多信息,请检查ADD
命令的Dockerfile参考: https ://docs.docker.com/engine/reference/builder/#add
希望这会有所帮助,祝你好运,欢迎来到SO!