我喜欢在Bitbucket Pipelines中为Ruby on Rails / PostgreSQL / Sidekiq项目设置持续部署,但是我很难理解它是如何组合在一起的,特别是如何在Docker镜像中使用postgres . 我是Docker和Pipelines的新手 .
在我的谷歌搜索中,Docker谈到使用docker-compose创建一个包,所以我不确定包和图像之间有什么区别,如果Bitbucket Pipelines支持包 . 最终我想在Heroku上设置部署到临时环境,但是现在只需要 rspec spec
在Pipelines中工作就可以了 .
是否存在已经设置了Ruby PostgreSQL的现有公共映像,我可以使用它?如果没有,我从哪里开始?我当前的Dockerfile如下所示:
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
以及以下命令:
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"?
2 回答
Docker compose在Bitbucket Pipelines中是still not available,所以你必须使用一个Docker镜像,它具有你已经安装的所有依赖项 .
我们've also struggled with finding good Docker container with Django Postgres stack and ended up building custom Docker container. I'已经描述了帖子中的整个过程和步骤:Building, Testing and Deploying Django App with Bitbucket Pipelines . 您可以将它用作项目的模板,并用Ruby替换Python依赖项 .
根据https://bitbucket.org/spittet/ruby-postgresql的建议,你可以像这样轻松设置
bitbucket-pipelines.yml
:您可能已经看到我需要创建具有创建数据库权限的用户 .
要进行调试,您可以先在本地尝试: