首页 > 系统 > Linux >

docker+rails+postgresql+redis+puma+nginx

2017-04-03

docker+rails+postgresql+redis+puma+nginx,前期有个疑问,capistrano一类的工具也可以很方便的部署,为什么还要docker。

docker+rails+postgresql+redis+puma+nginx,前期有个疑问,capistrano一类的工具也可以很方便的部署,为什么还要docker.
有人说保持环境一致,这个不多做评价,不过个人感觉,rails分为三个环境,各有优势,为何要保持一致.
在我看来,capistrano和docker的主要区别,还是一个适合多机部署,一个适合单机部署.也有一些人说docker更适合微架构,不过我觉得多机部署也没有什么区别把,单点故障之类的都可以.
有些扯远了,还是言归正传吧.

我们首先得安装docker及相应的工具.

安装docker

#config/database.yml

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5
  timeout: 5000
  username: postgres
  # please see the update below about using hostnames to
  # access linked services via docker-compose
  host: postgres #是 docker-compose.yml中的key,与app,web同列,redis同样
  port: 5432
  password: #<%= ENV[&#39;POSTGRES_PASSWORD&#39;] %>


development:
  <<: *default
  database: psp_dev

test:
  <<: *default
  database: psp_test

production:
  <<: *default
  database: psp_pro
# config/redis.yml
defaults: &defaults
  host: redis
  port: 6379

development:
  <<: *defaults

test:
  <<: *defaults

staging:
  <<: *defaults

production:
  <<: *defaults

接下来,我们构建这些个服务.

docker ps

会有以下的输出:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES
f716c3ee2414        psp_web             "nginx -g &#39;daemon ..."   About an hour ago   Up About an hour    0.0.0.0:80->80/tcp, 443/tcp   psp_web_1
57702197c38c        psp_app             "bundle exec puma ..."   About an hour ago   Up About an hour    3000/tcp                      psp_app_1
415edf596c26        redis:3.0.5         "/entrypoint.sh re..."   About an hour ago   Up About an hour    0.0.0.0:6379->6379/tcp        psp_redis_1
cecf281102b3        postgres:9.4        "docker-entrypoint..."   About an hour ago   Up About an hour    0.0.0.0:32770->5432/tcp       psp_postgres_1
相关文章
最新文章
热点推荐