如何使用 docker 管理 rails 中的代码更改
How to manage code changes in rails with docker
我使用这个 Dockerfile 制作一个 rails 应用程序容器:
FROM ruby:2.2.0
RUN apt-get update -qq && apt-get install -y build-essential
# for postgres
RUN apt-get install -y libpq-dev
# for nokogiri
RUN apt-get install -y libxml2-dev libxslt1-dev
# for a JS runtime
RUN apt-get install -y nodejs
ENV APP_HOME /myapp
RUN mkdir $APP_HOME
WORKDIR $APP_HOME
ADD Gemfile* $APP_HOME/
RUN bundle install
ADD . $APP_HOME
现在这会将我的整个代码加载到图像中。当我在文件中更改代码时,是否必须 运行 docker 重新构建并启动一个新容器才能看到反映的更改?这对于快速更改和开发来说似乎很笨重。
或者我应该将卷装载到我的容器中以进行测试吗?
是的,您应该将代码从 Docker 容器外部挂载到 /myapp
,然后使用 !reload
让您的 Rails 应用程序在代码更改时重新启动.
我使用这个 Dockerfile 制作一个 rails 应用程序容器:
FROM ruby:2.2.0
RUN apt-get update -qq && apt-get install -y build-essential
# for postgres
RUN apt-get install -y libpq-dev
# for nokogiri
RUN apt-get install -y libxml2-dev libxslt1-dev
# for a JS runtime
RUN apt-get install -y nodejs
ENV APP_HOME /myapp
RUN mkdir $APP_HOME
WORKDIR $APP_HOME
ADD Gemfile* $APP_HOME/
RUN bundle install
ADD . $APP_HOME
现在这会将我的整个代码加载到图像中。当我在文件中更改代码时,是否必须 运行 docker 重新构建并启动一个新容器才能看到反映的更改?这对于快速更改和开发来说似乎很笨重。
或者我应该将卷装载到我的容器中以进行测试吗?
是的,您应该将代码从 Docker 容器外部挂载到 /myapp
,然后使用 !reload
让您的 Rails 应用程序在代码更改时重新启动.