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

Docker -omp phụ thuộc vào việc không chờ đợi cho đến khi dịch vụ phụ thuộc vào chưa được khởi động hoàn toàn

Có.

Trước tiên, hãy nhận ra rằng depends-on là gần như hoàn toàn vô dụng. Docker không biết gì về ứng dụng của bạn; nó không có cách nào để nói rằng máy chủ cơ sở dữ liệu của bạn không thực sự sẵn sàng để đáp ứng các yêu cầu dịch vụ.

Giải pháp chính xác là viết mã ứng dụng của bạn để (a) nó sẽ thử lại kết nối cơ sở dữ liệu ban đầu cho đến khi nó sẵn sàng và (b) nó sẽ kết nối lại với cơ sở dữ liệu nếu kết nối không thành công. (a) giải quyết vấn đề bạn đang hỏi và (b) cho phép bạn khởi động lại vùng chứa cơ sở dữ liệu độc lập với vùng chứa ứng dụng.

Nếu bạn không kiểm soát mã trong vùng chứa ứng dụng của mình, bạn có thể bọc lệnh chính của mình bằng một tập lệnh shell thực hiện điều gì đó như:

while ! psql -c 'select 1'; do
  sleep 1
done

(Đặt các tùy chọn xác thực thích hợp hoặc thiết lập .pgpass tệp)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trên CHÈN vào bảng CHÈN dữ liệu trong các bảng được kết nối

  2. Thực hiện cập nhật lớn bằng nhiều bảng trong PostgreSQL

  3. Dấu thời gian loại thay đổi PostgreSQL không có múi giờ -> có múi giờ

  4. Tối ưu hóa truy vấn trong PostgreSQL. GIẢI THÍCH Khái niệm cơ bản - Phần 1

  5. Hạn chế tên cột bảng Postgres?