PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Chạy tập lệnh sau điểm nhập vùng chứa trong docker-soạn

Bạn đang ghi đè lệnh command ban đầu và bạn không bắt đầu postgres trong tập lệnh này, đó là lý do tại sao cơ sở dữ liệu của bạn không khả dụng.

Bạn có thể đặt quá trình khởi tạo cơ sở dữ liệu của mình vào thư mục entrypoint của vùng chứa:/docker-entrypoint-initdb.d . Điều này thực thi tất cả *.sh*.sql các tệp trong thư mục này và không chạm vào command ban đầu .
Tất cả các tệp trong thư mục này được tự động thực thi theo thứ tự bảng chữ cái khi tạo vùng chứa . Do đó, hãy tạo một ổ đĩa để thêm các tệp script / sql của bạn vào entrypoint và để vùng chứa thực thi chúng. Điều này được mô tả trong tài liệu postgres chính thức, phần "Cách mở rộng hình ảnh này" .

Sau đó, tệp soạn thảo của bạn sẽ thay đổi thành một cái gì đó như thế này:

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

trong khi một thư mục cục bộ, ví dụ:db-init-scripts , chứa các tập lệnh khởi tạo của bạn (đổi tên nếu bạn muốn). Sao chép create_db.sh vào thư mục này và nó sẽ tự động được thực thi khi bạn tạo một vùng chứa mới.

Một số hình ảnh cơ sở dữ liệu xem thư mục entrypoint này, rất tiện lợi.

container_name: postgres của bạn có vẻ thừa.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pg_escape_string chính xác làm được gì?

  2. Postgresql:Nối phần tử trong các đối tượng mảng json

  3. Sqlalchemy đã sao chép mệnh đề WHERE thành FROM

  4. Việc sử dụng trình tự PostgreSQL ở chế độ ngủ đông không ảnh hưởng đến bảng trình tự

  5. SQL Đếm ngày cho đến đầu tháng