2014-11-14 19 views
5

Tôi gặp khó khăn khi khởi động lại cơ sở dữ liệu poster của dockerized (Tôi sử dụng Core OS). Cơ sở dữ liệu được bắt đầu bằng tập lệnh bash bằng cách sử dụng lệnhKhởi động lại postgres trong môi trường docker

# boot.sh 
sudo -i -u postgres /usr/lib/postgresql/9.3/bin/postgres -D /var/lib/postgresql/9.3/main -c config_file=/etc/postgresql/9.3/main/postgresql.conf 

hoạt động. Tôi có một kịch bản khác gọi là confd được chạy khi một số phím thay đổi (phần này là ok, tập tin được gọi chính xác) và phải khởi động lại postgres (không tải lại, vì một số thay đổi cấu hình yêu cầu khởi động lại). Dưới đây là các tùy chọn chính tôi đã cố gắng, mà thất bại ...

# restart.sh 
sudo -u postgres /usr/lib/postgresql/9.3/bin/pg_ctl --pgdata=/var/lib/postgresql/9.3/main restart 

tăng một cách hệ thống một lỗi:

%FATAL: lock file "postmaster.pid" already exists 
%HINT: Is another postmaster (PID 273) running in data directory "/var/lib/postgresql/9.3/main"? 

Hơn nữa,

# restart.sh 
rm /var/lib/postgresql/9.3/main/postmaster.pid 
sudo -i -u postgres /usr/lib/postgresql/9.3/bin/postgres -D /var/lib/postgresql/9.3/main -c config_file=/etc/postgresql/9.3/main/postgresql.conf 

,

rm /var/lib/postgresql/9.3/main/postmaster.pid 
/etc/init.d/postgresql start 

,

/etc/init.d/postgresql restart 

exec su postgres -c "/usr/lib/postgresql/9.3/bin/postgres -D /var/lib/postgresql/9.3/main -c config_file=/etc/postgresql/9.3/main/postgresql.conf" 

thất bại với

ERROR exit status 1 

Bất kỳ suy nghĩ? Cảm ơn bạn trước!

+0

Một mặt, restart.sh chỉ bao gồm dòng này hoạt động mà không có lỗi trên máy chủ Ubuntu của tôi: 'sudo -i -u postgres /usr/lib/postgresql/9.3/bin/pg_ctl restart -D/var/lib/postgresql/9.3/main'. (Tôi không thấy cú pháp này trong câu hỏi của bạn.) Mặt khác, tôi không chạy nó trong vùng chứa Docker. –

+0

Cảm ơn Mike, nó hoạt động trên một máy chủ ubuntu. Vấn đề dường như được gắn với Core OS hoặc Docker, nhưng tôi chưa biết chính xác những gì nó bao gồm ... – Raphael

+0

thử thêm –cap-thêm SYS_PTRACE vào lệnh docker run của bạn –

Trả lời

3

Đối với tôi, thay đổi cấu hình và làm

$ docker restart <postgres_container> 

trên máy chủ hoạt động tốt.

+0

Làm việc như một sự quyến rũ đối với tôi. –

Các vấn đề liên quan