Saat ini saya menggunakan docker compose untuk menghubungkan aplikasi web saya dengan database postgre. Konfigurasi saya terlihat seperti ini:
# 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
Jika saya menjalankan docker-compose up
saya mendapatkan kesalahan ini
could not translate host name "db" to address: Name or service not known
Jika saya tidak menjalankan rake db:create ...
di Dockerfile dan menjalankannya seperti ini docker-compose run web rake db:create
itu berfungsi dengan baik dan saya tidak mendapatkan kesalahan apa pun. Bisakah kamu membantuku?
Ya, tautan tidak tersedia selama fase pembuatan. Ada beberapa cara untuk memasang perlengkapan Anda selama pembuatan, tetapi tidak satupun yang benar-benar langsung:
Dockerfile
untuk database, menambahkan semua sumber proyek, dan dependensi ruby, dan menjalankan rake db:create
sebagai bagian dari pembuatan gambarrake db:create
sebagai bagian dari skrip entrypoint dari gambar database (sesuatu yang saya bukan penggemar, dan tidak benar-benar merekomendasikan)Oke keren! : +1: Pertama, terima kasih atas uraian panjang Anda! Saya akan menjalankannya sebagai langkah manual, ini sudah cukup untuk saat ini. Nanti saya bisa memikirkan langkah selanjutnya!
@dazorni Bisakah Anda memperbarui langkah-langkah untuk menyelesaikannya. Saya masuk ke dalam ini dan mencoba menemukan. Saya tahu sulit untuk mereproduksi, tetapi sangat menghargai jika Anda dapat menunjukkan :).
Komentar yang paling membantu
Ya, tautan tidak tersedia selama fase pembuatan. Ada beberapa cara untuk memasang perlengkapan Anda selama pembuatan, tetapi tidak satupun yang benar-benar langsung:
Dockerfile
untuk database, menambahkan semua sumber proyek, dan dependensi ruby, dan menjalankanrake db:create
sebagai bagian dari pembuatan gambarrake db:create
sebagai bagian dari skrip entrypoint dari gambar database (sesuatu yang saya bukan penggemar, dan tidak benar-benar merekomendasikan)