Tag: ruby在轨道

减lessrake资产的内存消耗:预编译

问题: 在执行rake assets:precompile时,我将耗尽内存rake assets:precompile自动构build中的rake assets:precompile任务。 有没有什么策略可以执行增量式预编译,或者以其他方式执行预编译阶段而不消耗更多的RAM? 看起来好像这个任务比构build的基线消耗了大约850MB。 背景 : 我试图得到一个单一的Docker容器Bitbucketstream水线版本的我们的自动构build。 应用程序堆栈包括Rails 4.2.7,PostgreSQL 9.3,Java 8,Maven 3.3.9和JRuby 9.1.2.0。 我已经尝试创build基于Debian Jessie和Alpine Linux的映像,但是在基准内存中并没有太大的区别。

在容器中的Ruby OOM

最近我们遇到了一个Docker容器中的Ruby问题。 尽pipe负载很低,应用程序往往会消耗大量的内存,并在经过一段时间的下载负载OOMs。 经过一番调查,我们把问题缩小到一线 docker run -ti -m 209715200 ruby:2.1 ruby -e 'while true do array = []; 3000000.times do array << "hey" end; puts array.length; end;' 在一些机器上,它在开始后不久就被OOM杀死了(因为超出限制而死亡),但是在一些机器上,虽然缓慢,但没有OOM。 似乎(似乎只是,也许不是这样)在一些configurationruby能够推断cgroup的限制,并调整它的气相色谱。 testingconfiguration: CentOS 7,Docker 1.9 – OOM CentOS 7,Docker 1.12 – OOM Ubuntu 14.10,Docker 1.9 – OOM Ubuntu 14.10,Docker 1.12 – OOM MacOS X Docker 1.12 – 没有OOM […]

不能在Alpine Linux上需要ruby gsl

我正在docker图像中运行阿尔卑斯山脉,并运行Ruby代码。 这成功安装所有包,但是当我尝试要求gsl时失败。 这是Dockerfile: FROM alpine:3.4 RUN apk upgrade –update \ && apk add libatomic readline readline-dev libxml2 libxml2-dev \ libxslt libxslt-dev zlib-dev zlib ruby yaml \ yaml-dev libffi-dev build-base git nodejs \ ruby-io-console ruby-irb ruby-json ruby-rake \ make gsl gsl-dev \ gcc g++ libffi-dev ruby-dev tzdata RUN gsl-config –cflags RUN gem install –no-document nmatrix gsl […]

将Heroku环境variables传递给Docker实例

我在Heroku上构build了一个必须在Docker容器中运行的RoR应用程序。 为此,我使用官方的Dockerfile 。 由于Heroku非常常见,我需要一些附件来使这个应用程序完全可用。 在生产中,variablesDATABASE_URL在我的应用程序中可用。 但是,如果我尝试一些使用环境variables的其他附件(在我的情况下是Mailtrap ),则variables在运行时不会被复制到实例中。 所以我的问题很简单: 在Heroku上执行时,如何让docker实例知道环境variables? 正如你可能会问,我已经知道,我们可以在docker-compose.yml指定一个环境指令。 我想避免这一点,以便能够通过项目库共享这个文件。

Rails控制器caching使用docker容器(开发)

我有docker运行应用程序容器(rails应用程序)和运行postgres的db容器 我已经卷我的本地工作目录到我的应用程序容器,所以我可以在本地工作,并在应用程序容器反映的变化。 在做这一切似乎工作正常,除了我似乎在我的控制器上得到一些奇怪的caching行为 例如 路线: get '/something', to: 'something#show' 调节器 class SomethingController < ApplicationController def show render text: "Hello 1" end end 当我去myapp /我得到Hello 1完美! 然后我编辑我的控制器: class SomethingController < ApplicationController def show render text: "Hello 2" end end 当我去myapp /我仍然得到Hello 1 ? 如果我返回一个html视图,它更新就好了,为什么我的控制器中的更改没有被反映出来? 我能得到这些更改反映的唯一方法是通过更改我的路由文件并保存,这似乎刷新正在caching的任何内容。 注意:我没有caching在浏览器中,我cachingclosures,每进行一次我很难重新加载。 任何人都可以解释这一点吗? 我试图按照这个教程: https : //www.youtube.com/watch?v=NEdDa3Zqu7s&list=PLbG4OyfwIxjEe5Y3hQCiQjYnSgRH051iJ&index=3 谢谢

Docker,Jenkins和Rails – 在典型的Rails堆栈上运行规范的设置

我想要一个Jenkins的master和slave设置来运行标准的Rails应用程序(PostgreSQL,sidekiq / redis,RSPec,capybara-webkit,一个通用的Rails栈)的specs,所以它也可以放在其他的机器上。 我有几台好的固定式机器收集灰尘。 任何人都可以共享一个可执行的dockerjenkins铁轨堆栈的例子? 什么阻止了这件事? 主从设置也是优选的。 前言:经过几天的上网,几个教程没有成功,我即将放弃项目。 我对docker,docker-machine,docker compose和volume有了一个基本的了解,我有一个简单的应用程序的dockerregistry。

从Docker容器login到macOS的系统日志/控制台?

我将我的Docker容器设置为将日志发送到CentOS 7上的主机日志(使用–log-driver syslog )。 我想在macOS(塞拉利昂)复制这个。 但它似乎并没有出现在任何地方。 $ docker run –log-driver syslog -it busybox sh / # logger "Hello world!" / # exit 和: $ sudo cat /var/log/system.log | grep "Hello world" Password: $ 需要什么样的configuration才能使任何任何容器的Docker系统日志logging命令出现在macOS上的日志文件中? 如果我不configuration日志驱动程序,我可以查看这些types的默认系统日志logging。 但是Ruby的syslog实现必须以不同的方式logging。 $ docker run –log-driver syslog -it centos /bin/bash # yum install ruby -y # ruby -e "require 'syslog/logger'; log […]

Rake任务似乎不在Docker容器中写入文件

我试图在本地运行我的Rails应用程序作为平台迁移的一部分。 我在Docker Compose中使用Docker。 我遇到了rake assets:precompile问题rake assets:precompile 。 它看起来好像docker工人在构build过程中删除生成的文件。 这是我的Dockerfile FROM ruby:2.2.2 RUN apt-get update -qq && apt-get install -y build-essential nodejs npm nodejs-legacy mysql-client vim RUN mkdir /lunchiatto ENV RAILS_ENV production ENV RACK_ENV production WORKDIR /tmp COPY Gemfile Gemfile COPY Gemfile.lock Gemfile.lock RUN bundle install –without production test ADD . /myapp WORKDIR /myapp RUN bundle […]

无法在Ubuntu中访问Docker的暴露端口

我创build的Sinatra Web应用程序在容器内工作,我可以在容器内的9393访问它。 以下是我的Dockerfile (使用Dockerfile指定的Dockerfile : jikkujose / red ): FROM jikkujose/red MAINTAINER Jikku Jose <jikkujose@gmail.com> COPY . /banana_app WORKDIR /banana_app RUN bundle install EXPOSE 9393 ENTRYPOINT ["bundle", "exec", "shotgun"] 我通过docker run -itdP hey启动了build立的映像 当我这样做的时候, docker ps -a : CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a815e2852c68 hey "bundle exec shotgun 13 minutes ago Up […]

Docker容器发送空的响应

希望有人能告诉我我失踪了什么? 这是一个使用webrick的ruby应用程序,我正在尝试Containerize应用程序。 在Mac OSX 10.12.3 Sierra上运行。 这是我的Dockerfile FROM ruby:2.4.0-alpine RUN apk add –no-cache gcc musl-dev libstdc++ g++ make RUN gem install jekyll bundler redcarpet RUN mkdir -p /usr/app/jekyll COPY . /usr/app/jekyll WORKDIR /usr/app/jekyll EXPOSE 4000:4000 CMD ["jekyll", "serve"] 这是如何构build图像 docker build -t chb0docker/cheat . 如果我直接在主机上运行服务,它运行良好 Violas-MacBook-Pro:progfun-wiki cbongiorno$ jekyll serve & [1] 49286 Violas-MacBook-Pro:progfun-wiki cbongiorno$ Configuration […]