У меня есть среды production
и staging
на одной машине. Одно приложение rails работает постоянно. Одно (фактически одно и то же) приложение rails предназначено только для тестирования/реализации новых функций.
Итак, я использую mongodb:
mongod --dbpath /path/to/my/production/rails/app/db
Я также хотел бы запустить один mongod с:
mongod --dbpath /path/to/my/staging/rails/app/db
Но я не могу представить, как это сделать, потому что, если я сделаю так, как описано, я, очевидно, получу:
Mon Oct 14 16:12:59 [initandlisten] ERROR: listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
Mon Oct 14 16:12:59 [initandlisten] ERROR: addr already in use
Итак, как лучше всего работать с двумя разными экземплярами mongodb на одном компьютере, чтобы иметь возможность работать как с производственными, так и с промежуточными приложениями по отдельности?
Обновлять:
конечно, лучше определить разные среды в приложении rails (например, mongodb.yml) и использовать один и тот же процесс и порт mongod, но было бы интересно, если возможно что-то вроде этого (полностью разделить среды):
port 27017 <--> --dbpath /path/to/my/production/rails/app/db
port 27018 <--> --dbpath /path/to/my/staging/rails/app/db