Изменение Postgres порта в Docker Rails - PullRequest
0 голосов
/ 28 января 2020

Я хотел бы запустить postgres на другом порту, отличном от моего локального компьютера, указывая на 5432 в контейнере docker.

version: '3'
services:
 db:
  image: postgres:alpine
  restart: always
  volumes:
   - ./tmp/db:/var/lib/postgresql/data
  ports:
    - "9000:5432"
 web:
  build: .
  restart: always
  command: bash -c "rm -f tmp/pids/server.pid && rails s -p 3000 -b '0.0.0.0'"
  volumes:
   - .:/myapp
  ports:
   - "3002:3000"
  depends_on:
   - db

и в database.yml Я указываю среду разработки на порт 9000

default: &default
  adapter: postgresql
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default
  host: db
  username: postgres
  database: myapp_development
  port: 9000

test:
  <<: *default
  database: myapp_test

Но когда я запускаю приложение rails в localhost:3002, я получаю

Could not connect to server: Connection refused Is the server running on host "db" (172.21.0.2) and accepting TCP/IP connections on port 9000?

1 Ответ

1 голос
/ 28 января 2020

вам нужно установить порт на 5432 docker сеть будет использовать внутренние порты:

development:
  <<: *default
  host: db
  username: postgres
  database: myapp_development
  port: 5432
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...