PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Jalankan skrip setelah titik masuk kontainer di docker-compose

Anda mengganti command yang asli dan Anda tidak memulai postgres dalam skrip ini, itulah sebabnya basis data Anda tidak tersedia.

Anda dapat memasukkan inisialisasi database ke direktori titik masuk container:/docker-entrypoint-initdb.d . Ini mengeksekusi semua *.sh dan *.sql file dalam direktori ini dan tidak menyentuh command asli .
Semua file dalam direktori ini secara otomatis dieksekusi dalam urutan abjad pada pembuatan container . Oleh karena itu, buat volume untuk menambahkan skrip / file sql Anda ke titik masuk dan biarkan wadah menjalankannya. Ini dijelaskan dalam dokumentasi postgres resmi, bagian "Cara memperluas gambar ini" .

File penulisan Anda kemudian berubah menjadi seperti ini:

postgres:
  build: ./postgres
  volumes:
    - /shared_folder/postgresql:/var/lib/postgresql
    - ./db-init-scripts:/docker-entrypoint-initdb.d
  ports:
    - "5432:5432"

sedangkan direktori lokal, mis. db-init-scripts , berisi skrip inisialisasi Anda (ganti namanya jika Anda mau). Salin create_db.sh ke folder ini dan akan otomatis dijalankan saat Anda membuat wadah baru.

Beberapa database-images melihat direktori entrypoint ini, yang sangat nyaman.

container_name: postgres Anda tampaknya berlebihan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL Query untuk memilih data dari minggu lalu?

  2. Bagaimana cara menggunakan EXECUTE FORMAT ... MENGGUNAKAN dalam fungsi postgres

  3. Bagaimana cara menulis fungsi yang mengembalikan nilai teks atau bilangan bulat?

  4. sql menghasilkan nama tabel/tampilan yang unik

  5. Postgres mengabaikan indeks stempel waktu, mengapa?