Tag: ruby on rails

使用volume-from挂载的音量为空

所以这就是我想要做的: 链接到Nginx容器 – >运行Puma的Rails容器 使用docker-compose,这个解决scheme效果很好。 我可以启动这两个容器,NGINX容器可以使用volumes_from访问链接容器中的卷。 首先,Dockerfile for Rails的相关位: ENV RAILS_ROOT /www/apps/myapp RUN mkdir -p $RAILS_ROOT WORKDIR $RAILS_ROOT …. lots of files get put in their proper places …. EXPOSE 3000 VOLUME [/www/apps/myapp/] CMD puma -C config/puma.rb Nginx的configuration是非常基本的,相关的部分在这里: ENV RAILS_ROOT /www/apps/myapp # Set our working directory inside the image WORKDIR $RAILS_ROOT EXPOSE 80 EXPOSE 443 […]

使用Docker + Puma + Nginx部署Rails 5应用程序

我真的很费劲将我的Rails应用程序部署到我新创build的DigitalOcean液滴。 我的设置如下: 我有一个在Docker容器中使用Postgres和Redis的本地Rails 5应用程序。 我只是想部署到生产使用Puma + Nginx作为networking服务器。 我无法做到这一点为我的生活。 这是我的docker-compose.yml文件: version: "2" services: postgres: image: postgres:9.6 ports: – "5432:5432" environment: POSTGRES_DB: "${DATABASE_NAME}" POSTGRES_PASSWORD: "${DATABASE_PASSWORD}" volumes: – postgres-data:/var/lib/postgresql/data redis: image: redis:latest ports: – "6379:6379" volumes: # This allows the data to persist to disk without being lost on # Docker container restarts: postgres-data: driver: local 什么是Puma / […]

Docker + rails,Mysql2 ::错误:拒绝用户访问

我把Rails放在Docker上,随时安装。 Db是mariadb,密码是通过环境variablesinput的。 Docker run -d -p 3306: 3306 -e MYSQL_ROOT_PASSWORD = [password] –volumes-from = vol-db –name db db_img 我想通过rake文件“创build”一个特定的模型。 但是当你每次运行rake文件 Mysql2 :: Error: Access denied for user 发生错误时发生错误。 所以我直接在Rails的database.yml文件中input我的密码并再次运行。 它工作正常,没有错误。 我认为这个问题是由创build容器时通过环境variablesinputMYSQL_ROOT_PASSWORD引起的。 但是,我没有inputmysql密码来“每当”。 当我每天运行rake命令时,如何在Docker容器中获取并运行环境variables?

将Ruby on Rails应用程序分发给最终用户

我想分配我的ruby on rails应用程序与以下组件: NGINX(让encryption) Redis(resque worker和scheduler) MongoDB的 最终用户将有一个没有安装任何东西的Ubuntu服务器。 有没有自动的方式来分发我的rails应用程序给最终用户,并用一个或两个命令设置上面提到的所有组件。 目前在我的生产服务器中,rails应用程序通过docker进行部署,步骤如下: git push origin branch_name SSH到服务器 git pull起源分支名称 docker构build docker工人 – 组成up -d 但我不知道这将如何解决我的最终用户,因为他们的服务器没有安装docker,而且他们的服务器也无法访问私有的git仓库。 任何帮助将不胜感激。

Ember不能用回形针和Docker从Rails后端检索图像资产

这只是生产中的一个问题。 我有两个Docker主机,一个运行一个nginx容器(提供一个Ember应用程序),另一个运行postgres容器和一个rails-api容器。 我想将后者2个容器移到第一个Docker主机上,这样它们都可以托pipe在一个主机上,我可以删除第二个Docker主机。 Rails-api使用回形针上传照片。 在Ember应用程序生产版本中,我通过在适配器/ application.js ENV.host = 'dockerhost2.com:3000/' host: ENV.host / ENV.host = 'dockerhost2.com:3000/'添加到config / environment.js和host: ENV.host中来指向rails后端。 如果我保留所有的东西(2个docker主机),一切都很奇怪 – 也就是说,图像被传送并显示在前端。 但是,如果我将所有的容器移动到一个docker主机,图像本身不能被检索,并返回一个404。 图片url总是“public / system / 000 / path / to / Image.jpg”。 当我把事情分开的时候(在2个docker主机上)转到'dockerhost1.com/public/system/000/path/to/Image.jpg'可以完美的工作,虽然我不明白为什么,因为rails应用程序在端口上3000和不同的主机上。 但是,当我把所有的容器合并到一个docker主机上时,相同的图像URL将返回404,并且只有当我进入“dockerhost1.com:3000/public/system/000/path/to/Image.jpg”时才起作用。 这是令人困惑的。 当我把所有的容器放到1docker机器上,并build立Ember应用程序指向docker.machine.ip:3000时,本地所有的东西都很漂亮。 去“docker.machine.ip / public / system / 000 / path / to / Image.jpg”确实find了这个图像,但是我承认,我不明白为什么。 我的Ember docker-compose.yml version: '2' services: […]

如何添加ssh密钥到docker集装箱?

我有与Capistrano部署现有的Rails应用程序。 现在我的团队把这个项目交给了Docker。 当我尝试 docker-compose run web cap production git:check 我有git退出状态:128.我知道这是来自Docker的ssh问题。 我可以将SSH密钥添加到Docker容器并运行cap production部署?

Docker无法为RoR应用程序提供GEMFILE文件

我试图在Windows 10上使用Docker Toolbox运行Ruby on Rails应用程序。 我在文件夹E:\项目中有docker-compose.yml文件,内容如下: version: '3' services: expertiza: image: winbobob/expertiza:ruby-2.2.7 ports: – '3000:3000' volumes: – '.:/expertiza' depends_on: – scrubbed_db – redis links: – scrubbed_db – redis working_dir: /expertiza command: bundle exec thin start -p 3000 environment: REDIS_HOST: redis scrubbed_db: image: mysql:5.7 volumes: # https://stackoverflow.com/questions/25920029/setting-up-mysql-and-importing-dump-within-dockerfile – '/expertiza/db:/docker-entrypoint-initdb.d' environment: MYSQL_ROOT_PASSWORD: ********* redis: image: redis:alpine 所有与应用程序相关的文件都位于文件夹E:\ […]

login到Logstash:将不同应用程序的日志分隔在一个容器中

我有轨道应用程序在客运networking服务器运行docker集装箱。 我正在尝试将应用程序日志redirect到Logstash。 我将rails日志redirect到STDOUT并将容器configuration为使用gelf日志驱动程序,将stdoutredirect到给定的Logstash服务器。 但问题出现了:乘客networking服务器也写他自己的日志到STDOUT。 而且我得到了两个日志的混合,这使得很难分离和分析。 这种情况下的最佳做法是什么? 我怎样才能标记每个日志stream来分隔logstash?

从docker中的rails控制台查询数据库时的性能问题

我从docker开发我的rails应用程序。 我也从docker运行rails c 当我尝试像Patient.last这样的查询时,大约需要15到30秒。 我只看到下面的屏幕没有任何消息。 15-30s后logging数据打印。 它只发生在模型巫婆包括devise.I只有一个病人在我的数据库。 当我再次查询它应该需要几毫秒。 我的模型定义是: 我的问题是哪里存在问题(AR,docker,Rails)? 我该如何debugging呢? 编辑: 谢谢@Fabrizio Bertoglio的build议。 问题在于devise。 当我从模型中删除devise方法,然后病人立即加载。 所以devise关键字是问题。 但为什么? 我需要挖掘它,或者请求devisegem。

在AWS上部署dockerized rails应用程序的最佳方法?

我dockerized现有的Rails应用程序,它正常运行开发。 我想将应用程序部署到生产环境。 我在本地使用了docker-compose。 应用程序堆栈如下所示: Rails应用程序 背景工人的邮件和清理 关系DB – postgres NoSQL DB – DynamoDB SQS队列 行动电缆 – Redis caching – Memcached 据我所知,部署选项如下: ECS(尝试这样做,但在将任务和任务定义与Docker组合概念相关的概念方面存在困难) ECS与Elastic Beanstalk 根据这个docker文档的Docker Machine: https : //docs.docker.com/machine/drivers/aws/ 我没有capistrano的经验,还没有在这个项目上使用它,所以我不打算将它用于docker部署。 我打算使用一些CD / CI解决scheme来轻松部署。 我需要关于可用选项的build议,以及如何以易于维护的方式部署堆栈,并以最less的部署工作推送更新?