2017-12-21 16 views
1

나는 Restcomm Docker Quick Start Guide을 팔로우하고 있습니다. 나는 restock connect를 "docker"를 설치 한 "대형"VM (8GB mem 및 4vCPUs)에 연결하려고합니다. 저는 기업의 http 프록시를 사용하고 있으므로 "docker-compose up"을 실행하는 것만으로는 충분하지 않았습니다. Restcomm-Docker git 프로젝트를 복제하고 약간 변경했습니다 :restcomm phusion baseimage runsv를 시작할 수 없습니다 ./run : 파일이 없습니다.

Dockerfile 및 스크립트/{restcomm_autoconf.sh, restcomm_sslconf.sh}에서 http_proxy 및 https_proxy ENV 명령어를 추가했습니다. 그래서 모든 wgets가 작동 할 수 있습니다.

RCBCONF_STATIC_ADDRESS의 Restcomm-Connect/docker-compose.yml에 VM IP 주소를 구성했습니다. 나는 "사용자 정의"고정 표시기 이미지를 빌드 할 때

, 나는 몇 가지 오류 메시지가 쉽다을-얻을 설치 단계 :

docker build -t restcomm/restcomm:latest -f Dockerfile . 
... 
Setting up x11-common (1:7.7+13ubuntu3) ... 
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 
insserv: can not remove(../rc0.d/K01hwclock.sh): No such file or directory 
insserv: can not remove(../rc0.d/K01sendsigs): No such file or directory 
... 

그래서 나는 당신이 (phusion/baseimage)에 의존 원래 고정 표시기 이미지를 확인하고 그 이상한 파일 발견

run -it phusion/baseimage bash 
[email protected]:/# ls -l /etc/rc0.d/ 
ls: cannot access '/etc/rc0.d/K01hwclock.sh': No such file or directory 
ls: cannot access '/etc/rc0.d/K01sendsigs': No such file or directory 
ls: cannot access '/etc/rc0.d/K02umountnfs.sh': No such file or directory 
ls: cannot access '/etc/rc0.d/K03umountfs': No such file or directory 
ls: cannot access '/etc/rc0.d/K04umountroot': No such file or directory 
ls: cannot access '/etc/rc0.d/K05halt': No such file or directory 
total 4 
??????????? ? ? ?  ?   ? K01hwclock.sh 
??????????? ? ? ?  ?   ? K01sendsigs 
lrwxrwxrwx. 1 root root 19 May 17 2017 K01syslog-ng -> ../init.d/syslog-ng 
lrwxrwxrwx. 1 root root 17 May 10 2017 K01urandom -> ../init.d/urandom 
lrwxrwxrwx. 1 root root 20 May 17 2017 K02hwclock.sh -> ../init.d/hwclock.sh 
lrwxrwxrwx. 1 root root 18 May 17 2017 K02sendsigs -> ../init.d/sendsigs 
??????????? ? ? ?  ?   ? K02umountnfs.sh 
??????????? ? ? ?  ?   ? K03umountfs 
lrwxrwxrwx. 1 root root 22 May 17 2017 K03umountnfs.sh -> ../init.d/umountnfs.sh 
lrwxrwxrwx. 1 root root 18 May 17 2017 K04umountfs -> ../init.d/umountfs 
??????????? ? ? ?  ?   ? K04umountroot 
??????????? ? ? ?  ?   ? K05halt 
lrwxrwxrwx. 1 root root 20 May 17 2017 K05umountroot -> ../init.d/umountroot 
lrwxrwxrwx. 1 root root 14 May 17 2017 K06halt -> ../init.d/halt 
-rw-r--r--. 1 root root 353 Jan 19 2016 README 
[email protected]:/# 

미안 해요, 이것은 아마도 매우 일반적인 문제입니다하지만 구글에 분명 아무것도 찾을 수 없습니다. 그런 다음

, 내가 실행할 때까지 고정 표시기를-구성, 나는 다음과 같은 오류 메시지가 : 그럼

restcomm_1 | *** Running /etc/my_init.d/restcomm6.sh... 
restcomm_1 | mv: cannot remove '/etc/service/cron/run': No such file or directory 
restcomm_1 | mv: cannot remove '/etc/service/sshd/down': No such file or directory 
restcomm_1 | mv: cannot remove '/etc/service/sshd/run': No such file or directory 
restcomm_1 | mv: cannot remove '/etc/service/syslog-forwarder/run': No such file or directory 
restcomm_1 | mv: cannot remove '/etc/service/syslog-ng/run': No such file or directory 

다음과 같은 오류 루프의 메시지 : 나는이 문제에 관한 생각

restcomm_1 | *** Running /etc/rc.local... 
restcomm_1 | *** Booting runit daemon... 
restcomm_1 | *** Runit started as PID 281 
restcomm_1 | runsv syslog-ng: fatal: unable to start ./run: file does not exist 
restcomm_1 | runsv syslog-forwarder: fatal: unable to start ./run: file does not exist 
restcomm_1 | runsv cron: fatal: unable to start ./run: file does not exist 
restcomm_1 | runsv sshd: fatal: unable to start ./run: file does not exist 

을 나는 도커 이미지를 만드는 동안 가지고 있지만, 100 % 확실하지는 않습니다. 아마의 기원

cp -pR /etc/service/* /etc/runit/runsvdir/current/ 

:

나는/스크립트/restcomm-runlevels.sh가 고정 표시기 이미지에 /etc/my_init.d/restcomm6.sh로 추가 Restcomm-도커에 다음 줄을 발견 이전 오류 메시지 올바른 스크립트 만 추가해야합니까?

편집 1 : 나는 Restcomm-도커에 다음 블록에서/스크립트/restcomm-runlevels.sh 주석 : 지금

#cd /etc/runit/runsvdir 
#ln -s default /etc/runit/runsvdir/current 
#cp -pR /etc/service/* /etc/runit/runsvdir/current/ 
#mv -f /etc/service /service.old && ln -s /etc/runit/runsvdir/current /etc/service 

과 restcomm 서비스 시작하지만 뭔가가 있다는 느낌이 시작 여러 번 (인해 내 변화에 부적절한 runit 모니터링 될 수 있을까요?) :

Initializing RVD. Project version: 1.13 

과 : 나는 다른 스레드에 두 번 다음 라인과 이후의 로그 블록을 볼 수 있습니다 그런 다음 바인딩 예외가 발생합니다.

restcomm_1 | 21:05:18,291 ERROR [org.mobicents.protocols.mgcp.stack.JainMgcpStackImpl] (RestComm-akka.actor.default-dispatcher-2) java.net.BindException: Address already in use 
restcomm_1 | 21:05:18,293 ERROR [org.restcomm.connect.mrb.MediaResourceBrokerGeneric] (RestComm-akka.actor.default-dispatcher-4) Failed to find a local port 2727 to bound stack: java.lang.RuntimeException: Failed to find a local port 2727 to bound stack 
restcomm_1 | at org.mobicents.protocols.mgcp.stack.JainMgcpStackImpl.init(JainMgcpStackImpl.java:172) [mgcp-driver-6.0.23.jar:6.0.23] 
restcomm_1 | at org.mobicents.protocols.mgcp.stack.JainMgcpStackImpl.createProvider(JainMgcpStackImpl.java:250) [mgcp-driver-6.0.23.jar:6.0.23] 
restcomm_1 | at org.restcomm.connect.mrb.MediaResourceBrokerGeneric.bindMGCPStack(MediaResourceBrokerGeneric.java:134) [restcomm-connect.mrb-8.3.0-140.jar:8.3.0-140] 
restcomm_1 | at org.restcomm.connect.mrb.MediaResourceBrokerGeneric.onStartMediaResourceBroker(MediaResourceBrokerGeneric.java:120) [restcomm-connect.mrb-8.3.0-140.jar:8.3.0-140] 
restcomm_1 | at org.restcomm.connect.mrb.MediaResourceBrokerGeneric.onReceive(MediaResourceBrokerGeneric.java:99) [restcomm-connect.mrb-8.3.0-140.jar:8.3.0-140] 
restcomm_1 | at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:159) [akka-actor_2.10-2.1.2.jar:] 
restcomm_1 | at akka.actor.ActorCell.receiveMessage(ActorCell.scala:425) [akka-actor_2.10-2.1.2.jar:] 
restcomm_1 | at akka.actor.ActorCell.invoke(ActorCell.scala:386) [akka-actor_2.10-2.1.2.jar:] 
restcomm_1 | at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:230) [akka-actor_2.10-2.1.2.jar:] 
restcomm_1 | at akka.dispatch.Mailbox.run(Mailbox.scala:212) [akka-actor_2.10-2.1.2.jar:] 
restcomm_1 | at akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:506) [akka-actor_2.10-2.1.2.jar:] 
restcomm_1 | at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:262) [scala-library-2.10.1.jar:] 
restcomm_1 | at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975) [scala-library-2.10.1.jar:] 
restcomm_1 | at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1478) [scala-library-2.10.1.jar:] 
restcomm_1 | at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104) [scala-library-2.10.1.jar:] 
+0

아주 이상한 출력 ... 기본 이미지에 문제가있는 것 같습니다. 공유 한'ls -l/etc/rc0.d' 명령을 실행하면 매우 다릅니다 (그리고 예상 출력). 'No such file or directory' 오류가 없습니다. – gsaslis

+1

여유 시간이있는 경우, 프록시없이 집에서 수동으로 다운로드하려고 시도 할 것입니다 (이러한 종류의 문제를 방지해야하는 고정 점 이미지에 일종의 체크섬 검사가 있는지 여부는 알 수 없습니다). 지금 당장은 임시 해결책을 찾았습니다. 수동으로 Restcomm-JBoss zip을 다운로드하고 수동으로 (컨테이너없이) 시작하면 작동합니다 (http://documentation.telestax.com/connect/configuration/Restcomm%20-%20Installing% 다음). 20Restcomm % 20from % 20GitHub.html) 내 목표는 단지 ​​restcomm에 대해 더 많은 것을 배우는 것이 었습니다. 고맙습니다! –

+0

좋아, 네가 시도해 볼 수 있다면 좋을거야 ...;) – gsaslis

답변

1

어디에서 문제가 발생했는지 발견했습니다. docker/var/lib/docker 파일 시스템과 관련이 있습니다. d_type 지원으로 형식화되지 않은 xfs 파일 시스템이 있습니다. dstype 매개 변수로 포맷 된 새 (오픈 스택) VM에 새 볼륨을 연결했는데 성공했습니다! 사실,이 옵션을 사용하지 않으면 phusion/baseimage를 엉망으로 만든 다음이 이미지에 의존하는 restcomm 이미지를 간접적으로 사용합니다.

# docker info 
... 
Storage Driver: overlay 
Backing Filesystem: xfs 
Supports d_type: false 
... 
WARNING: overlay: the backing xfs filesystem is formatted without d_type support, which leads to incorrect behavior. 
     Reformat the filesystem with ftype=1 to enable d_type support. 
     Running without d_type support will not be supported in future releases. 

이 내가 문제를 발견하는 방법입니다

여기에 세부 사항입니다. xfs_info으로 확인할 수 있었다 FTYPE = 0, 1

[[email protected] telestax]# xfs_info/
meta-data=/dev/vda1    isize=256 agcount=10, agsize=524224 blks 
     =      sectsz=512 attr=2, projid32bit=1 
     =      crc=0  finobt=0 spinodes=0 
data  =      bsize=4096 blocks=5240950, imaxpct=25 
     =      sunit=0  swidth=0 blks 
naming =version 2    bsize=4096 ascii-ci=0 ftype=0 
log  =internal    bsize=4096 blocks=2560, version=2 
     =      sectsz=512 sunit=0 blks, lazy-count=1 
realtime =none     extsz=4096 blocks=0, rtextents=0 
[[email protected] telestax]# 

가 실행중인 인스턴스이 볼륨을 장착 OpenStack은

에 새로운 볼륨을 생성해야

(생성 장치/디바이스/VDB이었다) N, P, 1, 기본

0 :

는 "FDISK는/dev/VDB"

명령을 사용하여 파티션을 만들

올바른 매개 변수를 사용하여이 파티션의 XFS 파일 시스템을 만들 파티션 테이블 쓰기 그런 다음 "w":이 파일 시스템, 고정 표시기와

[[email protected] centos]# mkfs.xfs -n ftype=1 /dev/vdb1 
meta-data=/dev/vdb1    isize=512 agcount=4, agsize=655296 blks 
     =      sectsz=512 attr=2, projid32bit=1 
     =      crc=1  finobt=0, sparse=0 
data  =      bsize=4096 blocks=2621184, imaxpct=25 
     =      sunit=0  swidth=0 blks 
naming =version 2    bsize=4096 ascii-ci=0 ftype=1 
log  =internal log   bsize=4096 blocks=2560, version=2 
     =      sectsz=512 sunit=0 blks, lazy-count=1 
realtime =none     extsz=4096 blocks=0, rtextents=0 
[[email protected] centos]# 

정지 마운트 :

rm -fr /var/lib/docker 
mkdir /var/lib/docker 
mount /dev/vdb1 /var/lib/docker/ 

다음 도커 정보에 올바른 세부 정보가 제공됩니다.

docker info 
... 
Storage Driver: overlay 
Backing Filesystem: xfs 
Supports d_type: true 
... 
(no more warning) 

성공적으로 baseimage으로 시도하지 :

[[email protected] centos]# docker run -it phusion/baseimage bash 
Unable to find image 'phusion/baseimage:latest' locally 
latest: Pulling from phusion/baseimage 
22ecafbbcc4a: Pull complete 
580435e0a086: Pull complete 
8321ffd10031: Pull complete 
08b8f28a13c2: Pull complete 
2b401702069a: Pull complete 
a3ed95caeb02: Pull complete 
eae027dcdc0e: Pull complete 
93bc98227159: Pull complete 
Digest: sha256:d7507394a2e31759297a8726ac1f61e1c135b5255f8be42e7081d85b6fb3f903 
Status: Downloaded newer image for phusion/baseimage:latest 
[email protected]:/# ls -l /etc/rc0.d/ 
total 4 
lrwxrwxrwx. 1 root root 19 May 17 2017 K01syslog-ng -> ../init.d/syslog-ng 
lrwxrwxrwx. 1 root root 17 May 10 2017 K01urandom -> ../init.d/urandom 
lrwxrwxrwx. 1 root root 20 May 17 2017 K02hwclock.sh -> ../init.d/hwclock.sh 
lrwxrwxrwx. 1 root root 18 May 17 2017 K02sendsigs -> ../init.d/sendsigs 
lrwxrwxrwx. 1 root root 22 May 17 2017 K03umountnfs.sh -> ../init.d/umountnfs.sh 
lrwxrwxrwx. 1 root root 18 May 17 2017 K04umountfs -> ../init.d/umountfs 
lrwxrwxrwx. 1 root root 20 May 17 2017 K05umountroot -> ../init.d/umountroot 
lrwxrwxrwx. 1 root root 14 May 17 2017 K06halt -> ../init.d/halt 
-rw-r--r--. 13 root root 353 Jan 19 2016 README 
[email protected]:/# exit 
[[email protected] centos]# 

(더 이상 심볼릭 링크 문제)

그 후, 나는 restcomm 고정 표시기 이미지를 재건하고 다시 "최대 고정 표시기-구성"을 사용하여 그것을 실행. RestComm

그것은 일 :

나는 https://myip:8443 [email protected], 암호를 사용하여 테스트! (http를 통해 오염 된 이미지와 관련이 없었 음).