أستخدم حاليًا إنشاء عامل ميناء لربط تطبيق الويب الخاص بي بقاعدة بيانات 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
فإنه يعمل بشكل جيد ولا أحصل على أي أخطاء. هل بإمكانك مساعدتي؟
نعم ، الروابط غير متوفرة أثناء مرحلة البناء. هناك عدة طرق لتركيب تركيباتك أثناء البناء ، ولكن لا يوجد أي منها واضح حقًا:
Dockerfile
لقاعدة البيانات ، وإضافة كل مصدر المشروع ، وتبعيات روبي ، وتشغيل rake db:create
كجزء من بناء الصورةrake db:create
كجزء من البرنامج النصي لنقطة الدخول لصورة قاعدة البيانات (شيء لست من محبيي ، ولا أوصي به حقًا)حسنًا ، رائع! : +1: أولاً ، شكرًا لك على وصفك الطويل! سأقوم بتشغيله كخطوة يدوية ، يجب أن يكون هذا كافيًا في الوقت الحالي. في وقت لاحق يمكنني التفكير في خطوات أخرى!
dazorni هل يمكنك تحديث الخطوات لحلها. دخلت في هذا وحاولت اكتشاف. أعلم أنه من الصعب التكاثر ، لكنني أقدر حقًا إذا كان بإمكانك إظهار :).
التعليق الأكثر فائدة
نعم ، الروابط غير متوفرة أثناء مرحلة البناء. هناك عدة طرق لتركيب تركيباتك أثناء البناء ، ولكن لا يوجد أي منها واضح حقًا:
Dockerfile
لقاعدة البيانات ، وإضافة كل مصدر المشروع ، وتبعيات روبي ، وتشغيلrake db:create
كجزء من بناء الصورةrake db:create
كجزء من البرنامج النصي لنقطة الدخول لصورة قاعدة البيانات (شيء لست من محبيي ، ولا أوصي به حقًا)