Docker-ized Sinatra应用程序是否应将其源代码放在容器中或装载中?

时间:2017-10-12 16:21:53

标签: docker sinatra

我已经研究了很多关于对Sinatra,Rails等进行停靠的帖子,但是我不清楚应用程序的源代码应该最好驻留在哪里:在容器中,或在单独的/外部安装中,用于制作网站?

我认为单独挂载的优点是如果站点的代码经常更新,那么我可以假设只是启动将代码从Git导出到挂载,切换符号链接并可能反弹服务器不知何故 ...?因此,不必重新创建和重新部署容器,对吧?

虽然在容器中有源代码然后我认为它的一个优点是它都是自包含和可移植的,如果这真的是一个优势吗?

我有兴趣听取人们对此的利弊。

我们的应用程序很小,仅供几个人使用,很少会改变。

由于

1 个答案:

答案 0 :(得分:1)

对于本地开发,安装app dir并在容器中运行它是有意义的。但是对于生产我总是把所有东西放在容器里。否则它只是凌乱。开始使用宝石更新等。如果您先添加Gemfile并运行bundle update,然后添加应用程序文件,您将拥有一个非常精简的构建过程,只需很短的时间进行更新。结合一些自动化,它不应该是生产应用程序的问题。只有在Gemfile发生变化时,Gems才会更新。

示例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