Compose: الرابط لا يعمل في Dockerfile for rake

تم إنشاؤها على ٤ نوفمبر ٢٠١٥  ·  3تعليقات  ·  مصدر: docker/compose

أستخدم حاليًا إنشاء عامل ميناء لربط تطبيق الويب الخاص بي بقاعدة بيانات postgre. يبدو التكوين الخاص بي كما يلي:

# Dockerfile

FROM rails:onbuild
RUN rake db:create db:migrate db:seed
# config/database.yml

# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
#
default: &default
    adapter: postgresql
    encoding: utf8
    database: rezeptr_prod
    pool: 5
    username: postgres
    password:
    host: db

development:
  <<: *default
  database: rezeptr_dev

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default
  database: rezeptr_test
# docker-compose.yml

db:
  image: postgres
web:
  build: .
  volumes:
    - .:/usr/src/app
  ports:
    - "3000:3000"
  links:
    - db:db

إذا قمت بتشغيل docker-compose up فسأحصل على هذا الخطأ

could not translate host name "db" to address: Name or service not known

إذا لم أقم بتشغيل rake db:create ... في Dockerfile وقمت بتشغيله على هذا النحو docker-compose run web rake db:create فإنه يعمل بشكل جيد ولا أحصل على أي أخطاء. هل بإمكانك مساعدتي؟

kinquestion

التعليق الأكثر فائدة

نعم ، الروابط غير متوفرة أثناء مرحلة البناء. هناك عدة طرق لتركيب تركيباتك أثناء البناء ، ولكن لا يوجد أي منها واضح حقًا:

  • يمكنك إنشاء Dockerfile لقاعدة البيانات ، وإضافة كل مصدر المشروع ، وتبعيات روبي ، وتشغيل rake db:create كجزء من بناء الصورة
  • يمكنك تشغيل rake db:create كجزء من البرنامج النصي لنقطة الدخول لصورة قاعدة البيانات (شيء لست من محبيي ، ولا أوصي به حقًا)
  • يمكنك استبعاده من البناء ، وجعله خطوة يدوية في إعداد البيئة (أيضًا ليس معجبًا ، لكنه الخيار الأسهل ، وما نستخدمه في نماذج المستندات http://docs.docker.com/compose / القضبان /)
  • قم بإنشاء بناء متعدد الخطوات يبدأ بيئة مؤقتة ، والتي يمكنك استخدامها لإنشاء تفريغ sql للبيانات ، وتضمين ذلك في صورة قاعدة البيانات. لا توجد أدوات رائعة لذلك حتى الآن ، لكني أعمل على شيء ما في https://github.com/dnephin/buildpipe. لا توجد مستندات لها حتى الآن ، لذا ربما لا ترغب في استخدامها.

ال 3 كومينتر

نعم ، الروابط غير متوفرة أثناء مرحلة البناء. هناك عدة طرق لتركيب تركيباتك أثناء البناء ، ولكن لا يوجد أي منها واضح حقًا:

  • يمكنك إنشاء Dockerfile لقاعدة البيانات ، وإضافة كل مصدر المشروع ، وتبعيات روبي ، وتشغيل rake db:create كجزء من بناء الصورة
  • يمكنك تشغيل rake db:create كجزء من البرنامج النصي لنقطة الدخول لصورة قاعدة البيانات (شيء لست من محبيي ، ولا أوصي به حقًا)
  • يمكنك استبعاده من البناء ، وجعله خطوة يدوية في إعداد البيئة (أيضًا ليس معجبًا ، لكنه الخيار الأسهل ، وما نستخدمه في نماذج المستندات http://docs.docker.com/compose / القضبان /)
  • قم بإنشاء بناء متعدد الخطوات يبدأ بيئة مؤقتة ، والتي يمكنك استخدامها لإنشاء تفريغ sql للبيانات ، وتضمين ذلك في صورة قاعدة البيانات. لا توجد أدوات رائعة لذلك حتى الآن ، لكني أعمل على شيء ما في https://github.com/dnephin/buildpipe. لا توجد مستندات لها حتى الآن ، لذا ربما لا ترغب في استخدامها.

حسنًا ، رائع! : +1: أولاً ، شكرًا لك على وصفك الطويل! سأقوم بتشغيله كخطوة يدوية ، يجب أن يكون هذا كافيًا في الوقت الحالي. في وقت لاحق يمكنني التفكير في خطوات أخرى!

dazorni هل يمكنك تحديث الخطوات لحلها. دخلت في هذا وحاولت اكتشاف. أعلم أنه من الصعب التكاثر ، لكنني أقدر حقًا إذا كان بإمكانك إظهار :).

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات