Tag: ruby在轨道

jekyll不更新docker开发容器中的静态CSS,HTML文件

我正在debugging一个问题,我正在做一个Docker容器的开发,但是Jekyll在第一次写入静态HTML或CSS文件之后没有正确地更新。 我在第83行后面添加了以下代码到static_file.rb : sha256_src = Digest::SHA256.file path sha256_dst = Digest::SHA256.file dest_path fail "invalid file copy: #{path} / #{dest_path}" unless sha256_src == sha256_dst 而且我看到由于哈希不匹配而触发的失败。 相反, path上的旧版本的静态文件已被复制到dest_path 。 我以为我失去了我的想法,但我知道Docker使用分层文件系统,所以我不知道我是否遇到某种错误或已知问题。 是否有任何已知的问题相互使用以下技术: 杰奇 Docker容器 Linux容器 FileUtils cp方法 Ruby 2.2.3p173 我必须通过运行以下命令来解决它: cp s5/*.css _site/s5/ cp s5/*.html _site/s5/ 而不是让它与jekyll build自动工作。 以下是我如何将我的文件链接到泊坞窗图像: export ABSPATH=$(cd "$(dirname "$0")"; cd ../; pwd) docker run -d […]

为Ruby On Rails环境(从Dockerfile)创buildDocker镜像时出错

我想这是一个环境问题。 当我手动(没有Dockerfile)它的工作。 这是我的Dockerfile: FROM ubuntu:14.04 RUN apt-get update RUN apt-get upgrade –assume-yes RUN apt-get install wget vim git –assume-yes # install RVM RUN apt-get install build-essential curl –assume-yes RUN curl -L https://get.rvm.io | bash -s stable RUN echo 'source /etc/profile.d/rvm.sh' >> ~/.bashrc RUN /usr/local/rvm/bin/rvm-shell -c "rvm requirements" # install Ruby RUN /usr/local/rvm/bin/rvm-shell -c "rvm autolibs […]

Cron作业使用VM,Docker和Dokku

我在Ubuntu 14.04的Docker容器中有一个Ruby on Rails应用程序。 我使用Dokku设置了部署,但是我不确定如何让我的cron作业正常工作。 目前我使用的是每当gem ,让我做一些简单的事情,如: every 5.minutes do runner 'MyModel.run_something' end 问题是我认为每次我使用git push dokku master部署时,它会重置容器并将其设置为默认值,从而删除所有的cron时间表。 那么我想也许cron调度需要在容器之外,而在虚拟机级别。 我目前没有看到任何cron作业运行,不pipe我做什么。 以下是我在ssh中运行crontab -l时发生的情况: root@dashboard:~# crontab -l no crontab for root 我对容器虚拟化相当陌生,所以我很抱歉,如果我跳过了这个关键部分,但我是一个难倒。

Circle CI 2.0 Rails Redis Resque – Rspec Redis Server Not Found错误

当我们的testing套件运行时,我们得到了关于redis-server的以下问题。 无论我们尝试了什么,似乎没有什么能够超越这个错误。 我们已经通过dockerizevalidation了容器是否正在等待,如下所示,但是这个错误仍然存​​在。 任何想法将不胜感激! Resque初始化程序 require 'resque' require 'redis' require 'yaml' # Resque Plugins require 'resque/plugins/retry' require 'resque-retry' require 'resque-retry/server' require 'resque-lock-timeout' require 'resque-scheduler' require 'resque/failure/multiple' require 'resque/failure/redis' require 'resque-job-stats/server' require 'resque/rollbar' if AppUnsecure.settings[:active_db_services].include?('redis') uri = URI.parse(ENV["REDIS_URL"]) config = { host: uri.host, port: uri.port, password: uri.password } Resque::Failure::Multiple.classes = [ Resque::Failure::Redis, Resque::Failure::Rollbar ] Resque::Failure.backend = […]

为什么在这个Fig / Docker容器中networking如此之慢?

我使用Fig和Docker来包装一个示例Rails应用程序。 目前,它工作正常,数据库和服务器启动。 当我有一个活跃的互联网连接,这一切都完美的作品。 但是,当我没有Internet连接时,需要很长时间才能连接(从请求本地主机页面的浏览器开始20秒)到Rails / WEBrick服务器。 我已经看了日志,没有什么是不寻常的。 集装箱接收初始连接花费很长时间,而且传输数据的时间也很长。

使用Ubuntu容器在docker(Python,Java,Ruby,…)中运行应用程序时的编码问题(ascii,utf-8)

在我自己的PC上,应用程序运行良好,但是当它被部署到docker中时,由于字符无效而失败。 我使用的是ubuntu:lastest容器和python3 , java和ruby 。

更新gem时,Docker bundle安装caching问题

我在开发和生产中都使用docker,而一件真正让我感到困惑的事情是docker cache的简单性。 我有ruby应用程序需要bundle install来安装依赖关系,所以我从下面的Dockerfile开始: ADD Gemfile Gemfile ADD Gemfile.lock Gemfile.lock RUN bundle install –path /root/bundle所有依赖项都被caching,直到我添加一个新的gem。 即使我已经添加的gem只是0.5 MB,它仍然需要10-15分钟从头开始安装所有的应用程序的gem。 然后再用10分钟来部署它,由于依赖关系文件夹的大小(约300MB)。 我遇到了与node_modules和npm完全相同的问题。 我想知道,有没有人find解决这个问题? 我的研究成果迄今为止: 源到图像 – 在增量构build中caching任意文件。 不幸的是,由于它的工作方式,即使没有改变gem,它也需要将整个300MB推送到registry中。 生成速度更快 – 即使在没有更新的情况下,也能更快地部署。 Gemfile.tip – 将Gemfile分割为两个不同的文件,只将gem添加到其中的一个。 非常具体的解决scheme捆绑,我不相信它会超越增加1-2gem的规模。 鱼叉 – 如果不是强迫抛弃Dockerfile并切换到它们自己的格式,这将是一个很好的select。 这意味着团队中的所有新开发者都会感到特别痛苦,因为这个工具集需要时间与Docker分开学习。 暂时打包caching。 这只是一个我不确定的想法。 以某种方式将包pipe理器caching(而不是依赖关系文件夹)带到机器上,然后再删除它。 基于我的破解,它显着加快了package和npm的安装,而不会让机器在不必要的caching文件中膨胀。

Docker:当我需要添加软件时,是否需要重新构build容器?

所以我正在试验Docker,我build立了一个Rails应用程序与postgres交谈。 一切正常,我可以访问应用程序,迁移数据库等 Dockerfile FROM ruby:2.2.1 RUN apt-get update -qq && apt-get install -y build-essential RUN apt-get install -y libxml2-dev libxslt1-dev RUN apt-get install -y libqt4-webkit libqt4-dev xvfb RUN apt-get install -y nodejs ENV APP_HOME /code RUN mkdir $APP_HOME WORKDIR $APP_HOME ADD . $APP_HOME RUN bundle install docker-compose.yml web: build: . command: bin/rails server –port 3000 […]

在Docker中使用Spring保存文件后“const_get':未初始化的常量(NameError)'

我在Spring和Guard中使用Docker中的rails。 请参阅Guardfile: guard 'rspec', cmd: "#{env_vars} spring rspec -color -f doc", :all_on_start => false, :all_after_pass => false do watch(%r{^spec/.+_spec\.rb$}) 奇怪的问题:当上面的命令中有spring标签时,我在运行规范时遇到了一个错误,但只是在以某种方式保存了容器中的一个文件之后。 这是错误的: /usr/local/bundle/gems/activesupport-5.0.1/lib/active_support/inflector/methods.rb:268:in `const_get': uninitialized constant User (NameError) from /usr/local/bundle/gems/activesupport-5.0.1/lib/active_support/inflector/methods.rb:268:in `block in constantize' from /usr/local/bundle/gems/activesupport-5.0.1/lib/active_support/inflector/methods.rb:266:in `each' from /usr/local/bundle/gems/activesupport-5.0.1/lib/active_support/inflector/methods.rb:266:in `inject' from /usr/local/bundle/gems/activesupport-5.0.1/lib/active_support/inflector/methods.rb:266:in `constantize' from /usr/local/bundle/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:583:in `get' from /usr/local/bundle/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:614:in `constantize' from /usr/local/bundle/gems/devise-4.2.0/lib/devise.rb:301:in `get' from /usr/local/bundle/gems/devise-4.2.0/lib/devise/mapping.rb:81:in `to' from /usr/local/bundle/gems/devise-4.2.0/lib/devise/mapping.rb:76:in […]

Docker&Rails | bundler:找不到命令:rails

我是Docker的新手,对于Rails来说是相当新的。 当我运行docker-compose up ,我得到这个错误: web_1 | bundler: command not found: rails web_1 | Install missing gem executables with `bundle install` app_web_1 exited with code 127 最初我在运行bundle install时遇到了麻烦,无法find任何gem。 我在Gemfile中得到了“ 找不到任何来源的gem ”的错误。 然后我试图运行bundle (没有install ),它没有返回任何错误。 Rails是绝对安装的,因为inputrails给我所有的使用选项。 此外,我可以看到vendor/cache的gem。 我尝试删除所有这些,并运行bundle install ,他们都开始出现一个一个,因为捆绑商安装它们。 编辑:请随时纠正我的理解:因为运行捆绑软件安装意味着在Docker实例上安装gem,它不是“本地”安装。 在尝试解决此问题时,我在本地删除了所有gem,并重新安装了捆绑软件。 所以,当我运行gems list ,我只看到捆绑器。 我跑了bundler install ,它声称所有的gem正在安装​​。 他们在哪里安装? 它说,这将是供应商/caching,这是真的。 我可以在那里看到它们,但它仍然没有find任何gem:它甚至不会find轨道。 编辑2:我还应该提到: bin/rails s启动服务器就好了。 由于数据库实例没有运行,它不会加载任何东西,但这是有道理的,我猜。 编辑3:我在本地运行gem install […]