防止 google 应用引擎重新安装库
prevent google app engine reinstall lib
我正在使用 Google App Engine 部署 rails 应用程序,重新安装 rbenv、ruby、...[=11= 等库需要花费大量时间]
有没有办法防止这种情况,我只想安装新库
是的...我们正在积极努力提高速度。在此期间,您可以通过以下方法加快速度。归根结底,我们真正使用 App Engine Flex 所做的就是为您创建一个 Dockerfile,然后进行 docker 构建。对于 Ruby,我们尝试玩一些花哨的把戏,比如让您告诉我们您想要 运行 的 rbenv 或 ruby 的版本。如果您对所有这些都进行硬编码,则可以使用我们的基本图像。
为此,首先打开终端并使用您的代码进入目录。然后 运行:
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
中完成,因此您基本上可以添加代码,执行所需的任何 gem 安装,然后设置入口点。您也可以分叉我们的基础 docker 图像并创建您自己的图像。有了这个文件后,你应该做一个构建来测试它:
docker build -t myapp .
现在继续 运行 它,只是为了确保:
docker run -it -p 8080:8080 myapp
访问 http://localhost:8080 以确保一切正常。现在,当您下次 运行 glcoud app deploy
时,我们将使用此 Dockerfile。应该快得多。
希望对您有所帮助!
我正在使用 Google App Engine 部署 rails 应用程序,重新安装 rbenv、ruby、...[=11= 等库需要花费大量时间]
有没有办法防止这种情况,我只想安装新库
是的...我们正在积极努力提高速度。在此期间,您可以通过以下方法加快速度。归根结底,我们真正使用 App Engine Flex 所做的就是为您创建一个 Dockerfile,然后进行 docker 构建。对于 Ruby,我们尝试玩一些花哨的把戏,比如让您告诉我们您想要 运行 的 rbenv 或 ruby 的版本。如果您对所有这些都进行硬编码,则可以使用我们的基本图像。
为此,首先打开终端并使用您的代码进入目录。然后 运行:
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
中完成,因此您基本上可以添加代码,执行所需的任何 gem 安装,然后设置入口点。您也可以分叉我们的基础 docker 图像并创建您自己的图像。有了这个文件后,你应该做一个构建来测试它:
docker build -t myapp .
现在继续 运行 它,只是为了确保:
docker run -it -p 8080:8080 myapp
访问 http://localhost:8080 以确保一切正常。现在,当您下次 运行 glcoud app deploy
时,我们将使用此 Dockerfile。应该快得多。
希望对您有所帮助!