这是我在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文件夹中。
谢谢。
答案 0 :(得分:1)
ADD
命令将当前主机目录的内容(仅限新文件)复制到容器的/myapp
目录中。
RUN mkdir /myapp
:在容器内创建一个空的/myapp
目录。
WORKDIR /myapp
:将/myapp
设置为容器内的工作目录。
ADD Gemfile /myapp/Gemfile
和ADD Gemfile.lock /myapp/Gemfile.lock
:将您的收件人Gemfile
和Gemfile.lock
添加到/myapp/
。
RUN bundle install
:安装Gemfile
ADD . /myapp
:将您的应用程序代码添加到/myapp
目录(仅限新文件)。
如果您需要有关此命令的更多信息,请检查ADD
命令的Dockerfile参考:https://docs.docker.com/engine/reference/builder/#add
希望这有帮助,祝你好运,欢迎来到SO!