Dudle (docker): Proxy Error

german

#1

Hallo zusammen,

habe gerade auf einem UCS 4 die Dudle App (ist ja ein docker - container) installiert, was auch ohne Fehler funktioniert hat, im Apache gibt es die neue Proxy Konfig für dudle:

ProxyPass /dudle http://127.0.0.1:40000/dudle retry=0 ProxyPassReverse /dudle http://127.0.0.1:40000/dudle

Wenn ich jetzt allerdings versuche, per
/dudle
darauf zuzugreifen, bekomme ich das vom Apache:

Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /dudle/.
Reason: Error reading from remote server

Der Container läuft augenscheinlich, genau wie der docker-proxy:

[code]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b51b43cf411f docker.software-univention.de/ucs-appbox-amd64:4.1-3 “/sbin/init” 38 minutes ago Up 10 minutes 0.0.0.0:40000->80/tcp, 0.0.0.0:40001->443/tcp kickass_torvalds

ps -ef|grep docker

root 6358 1 0 Feb19 ? 00:02:36 /usr/bin/docker -d -p /var/run/docker.pid --storage-driver=overlay --bip=172.17.42.1/16
root 8086 6358 0 19:51 ? 00:00:00 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 40001 -container-ip 172.17.0.2 -container-port 443
root 8105 6358 0 19:51 ? 00:00:00 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 40000 -container-ip 172.17.0.2 -container-port 80[/code]

Die Container IP kann ich anpingen:

# ping 172.17.0.2 PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data. 64 bytes from 172.17.0.2: icmp_req=1 ttl=64 time=0.048 ms

aber sowohl ein Telnet auf den Port 80 oder 443 der Container IP, als auch auf Port 40000 auf localhost schlägt fehl:

[code]# telnet 172.17.0.2 80
Trying 172.17.0.2…
telnet: connect to address 172.17.0.2: Connection refused

telnet localhost 40000

Trying ::1…
Connected to localhost.
Escape character is ‘^]’.
Connection closed by foreign host.
[/code]

Die Univention Firewall ist komplett deaktiviert.

Da scheint also innerhalb des Containers etwas schief zu laufen, wenn ich das richtig verstehe. Leider habe ich so gar keine Ahnung von docker.
Hat jmd. nen Tip, was da falsch sein könnte oder wie ich irgendein Log des Containers mit dem eigentlichen Fehler finden kann?

Vielen Dank schon mal!
Snoopy


#2

Hallo,

ein paar Ideen wie, bzw. wo man weiterschauen kann:

[code]root@ucs-9843:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e2ceab267e59 docker.software-univention.de/ucs-appbox-amd64:4.1-3 “/sbin/init” About an hour ago Up About an hour 0.0.0.0:40000->80/tcp, 0.0.0.0:40001->443/tcp dreamy_wilson
root@ucs-9843:~# docker exec -it dreamy_wilson /bin/bash
root@dudle-34061315:/# cd /var/log/apache2/
root@dudle-34061315:/var/log/apache2# ls -altr
total 16
drwxr-xr-x 1 root root 4096 Mar 3 10:33 …
-rw-r–r-- 1 root root 0 Mar 3 10:33 other_vhosts_access.log
-rw-r–r-- 1 root root 0 Mar 3 10:33 ssl_access.log
drwxr-x— 2 root adm 4096 Mar 3 10:33 .
-rw-r----- 1 root adm 564 Mar 3 10:35 error.log
-rw-r----- 1 root adm 1401 Mar 3 11:56 access.log

root@dudle-34061315:/var/log/apache2# df
Filesystem 1K-blocks Used Available Use% Mounted on
overlay 44977968 2764088 39869128 7% /
tmpfs 1026900 0 1026900 0% /dev
shm 65536 0 65536 0% /dev/shm
/dev/mapper/vg_ucs-root 44977968 2764088 39869128 7% /var/lib/univention-appcenter/apps/dudle/conf
/dev/mapper/vg_ucs-root 44977968 2764088 39869128 7% /var/lib/univention-appcenter/apps/dudle/data
/dev/mapper/vg_ucs-root 44977968 2764088 39869128 7% /etc/resolv.conf
/dev/mapper/vg_ucs-root 44977968 2764088 39869128 7% /etc/hostname
/dev/mapper/vg_ucs-root 44977968 2764088 39869128 7% /etc/hosts
tmpfs 1026900 0 1026900 0% /proc/kcore
tmpfs 1026900 0 1026900 0% /proc/timer_stats
root@dudle-34061315:/var/log/apache2# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 10:31 ? 00:00:00 init [2]
root 1416 1 0 10:31 ? 00:00:00 runsvdir -P /etc/service log: …
root 1422 1 0 10:31 ? 00:00:00 /usr/sbin/rsyslogd -c5
root 1439 1 0 10:31 ? 00:00:00 /usr/sbin/sshd
root 1465 1 0 10:31 ? 00:00:00 /usr/sbin/inetd
daemon 1608 1 0 10:31 ? 00:00:00 /usr/sbin/atd
root 1630 1 0 10:31 ? 00:00:00 /usr/sbin/cron
root 1855 1 0 10:31 ? 00:00:00 /usr/lib/postfix/master
postfix 1858 1855 0 10:31 ? 00:00:00 pickup -l -t fifo -u
postfix 1859 1855 0 10:31 ? 00:00:00 qmgr -l -t fifo -u
root 2043 1416 0 10:31 ? 00:00:00 runsv univention-directory-listener
root 2141 1 0 10:32 ? 00:00:00 /usr/sbin/nscd
listener 2413 2043 0 10:32 ? 00:00:00 /usr/sbin/univention-directory-listener -F -b dc=mydomain,dc=intranet -m /usr/lib/univention-directory-listener/system -c /var/lib/univention
root 2948 1 0 10:33 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 3104 2948 0 10:33 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 3105 2948 0 10:33 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 3106 2948 0 10:33 ? 00:00:00 /usr/sbin/apache2 -k start
root 3544 0 0 11:58 ? 00:00:00 /bin/bash
root 3566 3544 0 11:59 ? 00:00:00 ps -ef
[/code]

telnet ist für solche Tests auch nur bedingt brauchbar.

[code]root@ucs-9843:~# nc -v -z 172.17.0.1 80
Connection to 172.17.0.1 80 port [tcp/http] succeeded!
root@ucs-9843:~# curl http://172.17.0.1/dudle/

.... [/code]

Viele Grüße,
Dirk Ahrnke


#3

Wir wollen uns das Leben ja einfach machen und das mühselige Ermitteln des Namens der Docker-Instanz ersparen:

univention-app shell dudle