2016-08-19 124 views
0

我部署使用谷歌应用程序引擎的Rails应用程序,它需要大量的时间来重新安装像rbenv,红宝石,图书馆......阻止谷歌应用程序引擎重新安装的lib

反正是有防止这种情况,我只想安装新库只是

+1

Potentailly相关:http://stackoverflow.com/questions/34500213/how-can-i-speed-up-rails-docker-deployments-on-google-cloud-platform –

回答

0

是啊......我们正在积极努力,使其更快。在此期间,以下是您如何使其更快。在一天结束的时候 - 我们真正用App Engine Flex做的事情就是为您创建一个Dockerfile,然后进行Docker构建。在Ruby中,我们尝试扮演一些奇特的技巧,比如让你告诉我们你想运行什么版本的rbenv或ruby。如果你很好地编码所有这些,你可以使用我们的基础图像。

要做到这一点,首先打开终端,并用代码cd进入目录。然后运行:

gcloud beta app gen-config --custom 

遵循提示一起。这将在你的CWD中创建一个Dockerfile。继续编辑该文件,并查看它正在做什么。在最简单的形式,你可以删除大部分,并与像这样结束:

FROM gcr.io/google_appengine/ruby 
COPY . /app/ 
RUN bundle install --deployment && rbenv rehash; 
ENV RACK_ENV=production \ 
    RAILS_ENV=production \ 
    RAILS_SERVE_STATIC_FILES=true 
RUN if test -d app/assets -a -f config/application.rb; then \ 
    bundle exec rake assets:precompile; \ 
    fi 
ENTRYPOINT [] 
CMD bundle exec rackup -p $PORT 

最繁重的工作在gcr.io/google_appengine/ruby已经完成,所以你可以基本上是添加你的代码,执行任何宝石安装你需要,然后设置入口点。您也可以分叉我们的基础码头图像并创建您自己的。之后,你有这个文件,你应该做一个构建,以测试它:

docker build -t myapp . 

现在继续运行,只是为了确保:

docker run -it -p 8080:8080 myapp 

访问http://localhost:8080以确保这一切都看起来不错。下次运行glcoud app deploy时,我们将使用此Dockerfile。应该更快,更快。

希望这会有所帮助!

+0

感谢您的帮助。让我试试 – KhiemNS

+0

顺便说一句,有没有我ssh应用引擎和修改后的代码在云上? – KhiemNS