首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Bitbucket Pipeline和Docker为Ruby on Rails项目设置CD

使用Bitbucket Pipeline和Docker为Ruby on Rails项目设置CD
EN

Stack Overflow用户
提问于 2016-08-21 21:08:47
回答 2查看 975关注 0票数 6

我很乐意在Bitbucket Pipeline中为Ruby on Rails / PostgreSQL / Sidekiq项目设置连续部署,但我正在努力弄清楚如何将它们整合在一起,特别是如何让postgres在Docker镜像中工作。我对Docker和Pipeline非常陌生。

在我的Googling中,Docker谈到了使用docker-compose来创建包,所以我会有一个Postgres容器和一个Sideqik容器,然后将它们与app容器链接起来。但我不确定捆绑包和镜像之间的区别,也不确定Bitbucket Pipeline是否支持捆绑包。最终,我希望将部署部署到Heroku上的登台环境,但现在只需要让rspec spec在管道中工作就可以了。

有没有已经设置了Ruby + PostgreSQL的公共镜像供我使用?如果没有,我该从哪里开始呢?我当前的Dockerfile如下所示:

代码语言:javascript
运行
复制
FROM postgres:9.4
FROM ruby:2.3.1-onbuild
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs postgresql-client

然后,我运行docker build .docker run -it my-image /bin/bash以及以下命令:

代码语言:javascript
运行
复制
root@a84ad0e7c16b:/usr/src/app# postgres
bash: postgres: command not found
root@a84ad0e7c16b:/usr/src/app# psql 
psql: could not connect to server: No such file or directory
  Is the server running locally and accepting
  connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
EN

回答 2

Stack Overflow用户

发布于 2016-12-22 17:34:39

根据https://bitbucket.org/spittet/ruby-postgresql的建议,你可以像这样轻松地设置你的bitbucket-pipelines.yml

代码语言:javascript
运行
复制
image: spittet/ruby-postgresql

pipelines:
  default:
    - step:
        script:
          - bundle install
          - /etc/init.d/postgresql start
          - sudo -u postgres sh -c 'createuser root --createdb'
          - rails db:setup RAILS_ENV=test
          - rspec

如您所见,我需要创建一个具有创建数据库权限的用户。

对于调试,您可以先在本地尝试:

代码语言:javascript
运行
复制
run -i -t -v <local_directory_of_your_rails_app>:<directory_on_docker> spittet/ruby-postgresql /bin/bash
cd <directory_on_docker>
bundle install...
票数 2
EN

Stack Overflow用户

发布于 2017-01-08 20:50:48

Docker compose是Bitbucket Pipeline中的still not available,所以你必须使用一个已经安装了所有你需要的依赖项的Docker镜像。

我们也一直在努力寻找具有Django Postgres堆栈的好的Docker容器,并最终构建了自定义的Docker容器。我已经在一篇文章中描述了整个过程和步骤:Building, Testing and Deploying Django App with Bitbucket Pipelines。您可以将其用作项目的模板,并将Python依赖项替换为Ruby。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39064549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档