docker-ized Sinatra应用程序的源代码应该放在容器中还是挂载中?

docker-ized Sinatra应用程序的源代码应该放在容器中还是挂载中?,docker,sinatra,Docker,Sinatra,我已经研究了很多关于将Sinatra、Rails等固定化的帖子,但我不清楚应用程序的源代码应该放在哪里:在容器中,还是放在生产网站的单独/外部挂载中 我认为单独挂载的优势在于,如果站点的代码经常更新,那么我可以假设只需启动从Git到挂载的代码导出,切换符号链接,并可能以某种方式跳出服务器。。。?所以容器不必重新创建和部署,对吗 而在容器中使用source的话,我认为它的一个优点是它是完全独立的和可移植的,如果这真的是一个优点的话 我很想听听人们对此的赞成和反对意见 我们的应用程序很小,只供几个人

我已经研究了很多关于将Sinatra、Rails等固定化的帖子,但我不清楚应用程序的源代码应该放在哪里:在容器中,还是放在生产网站的单独/外部挂载中

我认为单独挂载的优势在于,如果站点的代码经常更新,那么我可以假设只需启动从Git到挂载的代码导出,切换符号链接,并可能以某种方式跳出服务器。。。?所以容器不必重新创建和部署,对吗

而在容器中使用source的话,我认为它的一个优点是它是完全独立的和可移植的,如果这真的是一个优点的话

我很想听听人们对此的赞成和反对意见

我们的应用程序很小,只供几个人使用,很少会更改


感谢本地开发,装载应用程序目录并在容器中运行是有意义的。但对于生产,我总是把所有的东西都放在容器里。否则就太乱了。从gem更新开始,等等。如果您先添加Gemfile并运行bundle update,然后添加应用程序文件,那么您将拥有一个非常精简的构建过程,只需很少的时间进行更新。再加上一些自动化,这对生产应用程序来说应该不是问题。Gems仅在Gemfile更改时更新

Dockerfile示例:

# everything else
ADD Gemfile* $APP/

ENV BUNDLE_GEMFILE=$APP/Gemfile \
BUNDLE_JOBS=2 \
BUNDLE_PATH=/bundle

RUN bundle install  --without development test

ADD . $APP
看看这是否有帮助?