2012-03-21 28 views
10

Foreman'ın, kendi değerlerini kullanmak yerine geliştirme env dosyasında sağlanan PORT değerini kullanmasını istiyorum. Benim dosyaları kurulum aşağıda gösterilmiştir:Foreman mücevher neden PORT ortamı değişkenini göz ardı ediyor?

  1. Bir bash komut ustabaşı başlatmak için:

    ustabaşı -e development.env başlatmak

  2. development.env dosya içeriği:

    PORT = 3000

  3. Procfile content

    web: bohça exec raylar sunucu ince -p $ PORT -e $ RAILS_ENV $ 1

dev sunucusu ben kullanmaya zorlamak için CHo- 3000 ile ustabaşı başlayabilirsiniz biliyorum port 5000 tarihinde başlayan biter bu liman. Ama bu env dosyasının amacını yener.

Herhangi bir öneriniz var mı?

cevap

10

Bunun eski bir yazı olduğunu biliyorum, ancak anlamaya karar vermem biraz zaman aldı.

Foreman, Hizmet'i Procfile'da tanımladığınız yere göre PORT değerini artırır. o kadar PORT 3100 çalışacağını

web: bundle exec puma -q -p $PORT 
worker: bundle exec rake jobs:work 

Ama bizim ikinci Procfile içinde:

Puma PORT 3000 çalışacağını bizim LİMAN ortam değişkeni ilk Procfile örnekte 3000.

olarak ayarlanır Say PORT değişkeni ikinci satırda kullanılır.

worker: bundle exec rake jobs:work 
web: bundle exec puma -q -p $PORT 

Neden olmasın, farklı işlemlerin aynı PORT'u almaya çalışmasını engellemeyi tahmin ediyorum.

+2

Zor! Çözümünüzü gönderdiğiniz için çok teşekkürler. –

İlgili konular