Tag: ruby on rails

如何将已安装的gem复制到另一个泊坞窗图像?

我尝试了Docker多阶段构build,为rails生产运行时创build一个干净的映像。 我做了如下所示的Dockerfile # Build image FROM scardon/ruby-node-alpine:2.4.2 AS build-env COPY Gemfile* ./ RUN apk update && \ apk add –no-cache –virtual build-dependencies PACKAGES && \ gem install bundler && \ bundle install && \ bundle exec assets:precompile && \ bundle exec assets:sync # Runtime image FROM ruby:2.4.2-alpine3.6 COPY . . # $BUNLE_PATH is set to […]

如何使用相同的Rpectesting来testingRails项目的生产版本?

我正在用Rails构build一个JSON API服务,并使用docker在生产环境中运行它。 在我的Dockerfile中,我想要使用: RUN bundle install –without development test 我有点担心的是Gemfile可能包含一些真正必要的内容:development或者:test 。 这是一个人为的例子Gemfile : # Example situation which works in development and tests but fails in production group :development, :test do gem 'rails', '~> 5.1.4' end 在这种情况下,testing会传递得很好,但生产将被打破。 所以我正在考虑构build生产容器,并使用Docker运行它并公开端口进行testing。 使用相同的Rspec type: request对该容器的type: requesttesting是非常棒的。 testing运行器和rails服务器可以共享相同的testing数据库。 我怎么能强制我的Rspectesting不生成自己的服务器,但使用已经在后台运行的不同的服务?

Docker中创build的文件不会显示在Windows主机目录中,但是可以编辑

我在Docker的一个rails项目中遇到了一个奇怪的问题,那就是在googlesearch3天之后,我找不到解决scheme。 在Docker特定的论坛上,我确实设法find了类似于我的问题的一些问题,但是这些问题或者是针对较新的Docker,或者是未解决的。 应该指出的是,我对docker工作的理解非常有限,因为这是我第一个需要它的项目,我也从另一个开发人员那里inheritance了这个项目,他没有问题。 问题是由“docker”创build的文件没有镜像到主机的工作目录。 奇怪的是由docker / rails编辑的文件已经存在立即更新(容器到主机)例如:运行rake db:migrate我手动编辑(这是预期的)更改的schema.rb文件。 任何由我更改的文件也会更新(主机到docker / rails)我可以在刷新时立即看到更改。 Wheras如果我运行说一个rails precompile或generate命令它说明文件已经创build,可以在运行的项目中看到,但不是Windows项目目录! 我正在使用docker工具箱,在Windows 8的虚拟框中的boot2docker(我不能使用docker for windows)。 我已经确定该项目的目录是在共享和用户等我启动我的机器和会议通常的方式: docker-machine start > env > eval(…etc) 然后 docker-compose up 当项目结束时,我跑了: docker exec <containerID> rails generate controller <ControllerName> new edit –no-test-framework (以上从指导中获取,没有显示错误) 我刷新了Windows目录并将其重新input。 没有添加。 预编译资产的结果是一样的。 日志(第二次运行上面的命令) identical app/controllers/<<Controller_name>>_controller.rb route get '<<Controller_name>>/edit' route get '<<Controller_name>>/new' invoke erb exist app/views/<<Controller_name>> […]

让用户inputPython代码并在Rails网站上运行

我想让用户来到我的网站,inputpython代码,然后能够运行它。 对于这个问题,想象一下jsfiddle,除了python。 现在我正在Heroku的Rails上构build我的应用程序。 我怎样才能让一个人inputpython代码到我的表单中,并为他们运行? 要求:1.你不能简单地让一个人在你的服务器上运行python命令。 显而易见的原因是不安全的。 2.这需要支持并发性,所以如果有很多人在运行他们的脚本,你的系统就可以扩展。 3.封装 – 你不能从你的脚本访问其他人的数据。 拥有像Docker这样的容器的技术似乎解决了这些问题。 它可以用于这个问题?

Docker撰写:暴露环境variables到链接的服务

我正在玩Docker Compose,使一个容器运行一个带有Oracle后端的Rails应用程序。 Dockerfile和docker-compose.yml 这很好,直到我的Docker容器试图安装ruby-oci8 gem,它寻找一些or​​acle特定的环境variables。 这些variables在Oracle容器的Dockerfile中公开 : RUN 'export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe' 问题是,如何将oracle容器上的这个环境variables暴露给Web容器?

通过gitlab ci / docker运行构build

我已经成功安装了Gitlab CI ,并将其与我的gitlab链接。 我也用mysql服务configuration了使用docker和ruby-2.2映像的共享运行程序。 以下是我执行configuration一个跑步者https://about.gitlab.com/2015/04/17/unofficial-gitlab-ci-runner/ : $ gitlab-ci-multi-runner register \ –non-interactive \ –url "https://my.gitlab.ip/" \ –registration-token "REGISTRATION_TOKEN" \ –description "ruby-mysql" \ –executor "docker" \ –docker-image ruby:2.2 –docker-mysql latest 我有一个示例Ruby / Rails应用程序,出于某种原因,跑步者不运行构build。 这是我的.gitlab-ci.yml : image: ruby:2.2 services: – mysql:latest before_script: – ruby -v – gem install bundler – cp config/database.yml.example config/database.yml – cp config/secrets.yml.example config/secrets.yml – […]

在Ruby on Rails中使用Docker时控制台不会显示

我一直在试图使用Docker进行开发,它工作得很好,但让我恼火的事情之一是无法看到控制台打印。 Rails服务器(完全相同的应用程序): Started GET "/" for ::1 at 2015-10-14 22:18:28 +0200 Processing by PagesController#home as HTML foobar Rendered pages/home.html.erb within layouts/home (0.0ms) Completed 200 OK in 20ms (Views: 19.7ms | ActiveRecord: 0.0ms) 泊坞窗: Started GET "/" for 192.168.99.1 at 2015-10-14 20:18:44 +0000 Processing by PagesController#home as HTML Rendered pages/home.html.erb within layouts/home (0.1ms) Completed 200 OK […]

运行黄瓜没有开始启动轨道远程网站testing

背景:我有安装黄瓜的导轨应用程序。 我想使用相关的黄瓜testing来testing部署在单独系统上的应用程序。 问题:所以基本上我有部署的应用程序和黄瓜testing的URL,所以当我启动黄瓜的应用程序链接作为参数 – 我需要黄瓜启动testing,而不是调用它驻留的轨道应用程序,但testing外部链接。 为什么需要:黄瓜总是试图调用postgres数据库,这对我造成了一个问题,因为我试图dockerise它,我不想在其中包含postgres(由于某些原因超出了范围)。 那么是否有可能做到这一点? (运行黄瓜没有调用其他的东西,如应用程序/调用数据库)

在部署docker作曲者的形象时感到困惑

我一直在做一个ruby-on-rails示例应用程序,并在Linux服务器(ubuntu 14.04)中部署Docker镜像。 这是我的Dockerfile: FROM ruby:2.1.5 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs RUN mkdir /rails_docker_demo WORKDIR /rails_docker_demo ADD Gemfile /rails_docker_demo/Gemfile ADD Gemfile.lock /rails_docker_demo/Gemfile.lock RUN bundle install ADD . /rails_docker_demo # CMD bundle exec rails s -p 3000 -b 0.0.0.0 # EXPOSE 3000 泊坞窗,compose.yml: version: '2' services: db: image: postgres web: build: […]

与docker和文件所有权的铁路脚手架

按照本教程,我正在尝试使用Ruby on Rails和Docker。 在构build项目部分您可以看到Rails脚手架运行 docker-compose run web rails new . –force –database=postgresql –skip-bundle 紧接着, sudo chown -R $USER:$USER . 为了访问生成的文件,因为Docker以root身份创build它们。 我怎样才能省略每次更改权限? 比方说,我想用下面的方法创build简单的迁移文件: docker-compose run web rails g migration create_users 在这样的每一个简单的命令后面修改所有权似乎是不切实际的,但在每一个教程中我都发现没有人会谈论它。