2014-11-14 4 views
5

도킹 된 포스트그레스 데이터베이스를 다시 시작하는 데 문제가 있습니다 (코어 OS 사용). 데이터베이스는 bash 스크립트에서 명령도커 환경에서 포스트그레스를 다시 시작하십시오.

# 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 

을 사용하여 시작됩니다. 일부 다른 키를 변경할 때 실행되는 confd라는 다른 스크립트가 있습니다 (이 부분은 정상이며 파일은 올바르게 호출됩니다). postgres를 다시 시작해야합니다 (일부 구성을 변경하려면 다시 시작해야하기 때문에 다시로드하지 않아야합니다). , 또한

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

,

# 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 

: 여기에 실패 해봤 주요 옵션 ...

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

이 체계적으로 오류가 발생합니다

/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" 

ERROR exit status 1 

어떤 생각 실패? 미리 감사드립니다. 는 config를 변경하고 호스트에

$ docker restart <postgres_container> 

을하고 나를 위해

+0

한편,이 라인만으로 구성된 restart.sh는 내 우분투 서버에서 오류없이 작동합니다 :'sudo -i -u postgres /usr/lib/postgresql/9.3/bin/pg_ctl restart -D/var/lib/postgresql/9.3/main'에 있습니다. (귀하의 질문에이 구문이 표시되지 않습니다.) 반면에 Docker 컨테이너에서는 실행하지 않습니다. –

+0

감사합니다. Mike, 우분투 서버에서 작동합니다. 이 문제는 Core OS 나 Docker와 관련이있는 것 같습니다. 그러나 정확히 무엇이 구성되어 있는지는 모르겠습니다 ... – Raphael

+0

-cap-docker 실행 명령에 SYS_PTRACE를 추가하십시오. –

답변

3

, 그냥 잘 작동합니다.

+0

저의 매력처럼 작동합니다. –