Я хотел бы запустить 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?