Compose: Tautan tidak berfungsi di Dockerfile untuk rake

Dibuat pada 4 Nov 2015  ·  3Komentar  ·  Sumber: docker/compose

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?

kinquestion

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:

  • Anda dapat membuat Dockerfile untuk database, menambahkan semua sumber proyek, dan dependensi ruby, dan menjalankan rake db:create sebagai bagian dari pembuatan gambar
  • Anda dapat menjalankan rake db:create sebagai bagian dari skrip entrypoint dari gambar database (sesuatu yang saya bukan penggemar, dan tidak benar-benar merekomendasikan)
  • Anda dapat mengecualikannya dari build, dan menjadikannya langkah manual dalam menyiapkan lingkungan (juga bukan kipas, tetapi ini adalah opsi termudah, dan yang kami gunakan dalam contoh dokumen http://docs.docker.com/compose / rails /)
  • membuat multi-langkah build yang memulai lingkungan sementara, yang bisa Anda gunakan untuk membuat sql dump data, dan menyertakannya dalam image database. Belum ada perkakas yang bagus untuk itu, tapi saya sedang mengerjakan sesuatu di https://github.com/dnephin/buildpipe. Belum ada dokumen untuk itu, jadi Anda mungkin tidak ingin menggunakannya.

Semua 3 komentar

Ya, tautan tidak tersedia selama fase pembuatan. Ada beberapa cara untuk memasang perlengkapan Anda selama pembuatan, tetapi tidak satupun yang benar-benar langsung:

  • Anda dapat membuat Dockerfile untuk database, menambahkan semua sumber proyek, dan dependensi ruby, dan menjalankan rake db:create sebagai bagian dari pembuatan gambar
  • Anda dapat menjalankan rake db:create sebagai bagian dari skrip entrypoint dari gambar database (sesuatu yang saya bukan penggemar, dan tidak benar-benar merekomendasikan)
  • Anda dapat mengecualikannya dari build, dan menjadikannya langkah manual dalam menyiapkan lingkungan (juga bukan kipas, tetapi ini adalah opsi termudah, dan yang kami gunakan dalam contoh dokumen http://docs.docker.com/compose / rails /)
  • membuat multi-langkah build yang memulai lingkungan sementara, yang bisa Anda gunakan untuk membuat sql dump data, dan menyertakannya dalam image database. Belum ada perkakas yang bagus untuk itu, tapi saya sedang mengerjakan sesuatu di https://github.com/dnephin/buildpipe. Belum ada dokumen untuk itu, jadi Anda mungkin tidak ingin menggunakannya.

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 :).

Apakah halaman ini membantu?
0 / 5 - 0 peringkat