2016-04-13 15 views
0

Şu an phusion/yolcu-ruby21 kabında Ruby on Rails uygulamasını ve ayrı bir mysql: 5.5.46 kapsayıcısını kullanıyorum. Her ikisi de docker oluşturmadan bağlanır. sudo docker run -it -p 80:80 --link mysql55:mysql -e .env --name ror1 rubyonrails-phusionimg2 /bin/bash mysql konteyner ile: bu benim Rails database.yml uygulaması sudo docker run --detach --name mysql55 --env MYSQL_ROOT_PASSWORD=**** --env MYSQL_USER=**** --env MYSQL_PASSWORD=**** --env MYSQL_DATABASE=**** mysql:5.5.46Docker Yolcu Gösterge Paneli, MySQL'in sokete bağlanamadığını gösteriyor

Birlikte Yolcu-yakut kabı koştu. Başarıyla

# /etc/nginx/sites-enabled/webapp.conf: 
server { 
    listen  80; 
    server_name *****.com; 
    root /home/app/webapp/public; 
    passenger_enabled on; 
    rails_env staging; 
    index index.html index.htm; 
    # auth_basic "Restricted"; 
    # auth_basic_user_file /etc/nginx/htpasswd; 
} 

rake db:create db:migrate çalışır, hazırlık ortamlarında ile tırmık programı MySQL veritabanı kabı ulaşabilen anlamına gelir: Burada

staging: 
    adapter: mysql2 
    database: "<%= ENV["DATABASE_NAME"] %>" 
    host: "<%= ENV["MYSQL_PORT_3306_TCP_ADDR"] %>" 
    port: "<%= ENV["MYSQL_PORT_3306_TCP_PORT"] %>" 
    username: "<%= ENV["DATABASE_USERNAME"] %>" 
    password: "<%= ENV["DATABASE_STAGING_PASSWORD"] %>" 

webapp.conf olduğunu. Ancak yolcu gösterge panelinden hala bir şeyleri kaçırıyor muyum? Tüm env'ler dolu ve doğru görünüyor.

+0

Eğer docker uygulamalarınızı çalıştırmak nasıl ek bilgi takın, lütfen – Cortwave

cevap

0

Mysql veritabanı env değişkenlerini, konteyner başlatıldığında ve mysql veritabanına bağlandığında önceden yüklenen uygulamalar database.yml dosyasında değiştirdim. Örneğin "DATABASE_NAME", "MYSQL_ENV_MYSQL_DATABASE".

staging: 
    adapter: mysql2 
    database: <%= ENV['MYSQL_ENV_MYSQL_DATABASE'] %> 
    host: <%= ENV['MYSQL_PORT_3306_TCP_ADDR'] %> 
    port: <%= ENV['MYSQL_PORT_3306_TCP_PORT'] %> 
    username: <%= ENV['MYSQL_ENV_MYSQL_USER'] %> 
    password: <%= ENV['MYSQL_ENV_MYSQL_PASSWORD'] %>` 
0

Uygulamanızdaki mysql ile bağlantı ana bilgisayarı belirtmezsiniz.

Eğer mysql ana bilgisayarını belirtmezseniz, sunucuyu bağlanmaya çalışacaksınız.

+0

MYSQL_PORT_3306_TCP_ADDR MySQL kabın IPaddress içeren env varibale olduğunu. Konteyner adını bile yükledim ve denedim, ama şans yok. – karthik101