Docker Provisioning: Install Avahi and enable mDNS service discovery

The challenge of connecting Docker containers from the host is to
resolve a predefined hostname to an IP address assigned at runtime. For
Unix-like platforms such as Ubuntu, it can be done by either hard-code
the IP addresses or creating a DNS server. Both of them are not
user-friendly which need root permission to modify system files.

Avahi is a free Zeroconf implementation and provides multicast DNS
(mDNS) service discovery. It enables Docker containers to publish their
services on a local network. For the host systems supporting mDNS
technology, they will automatically discover the services in a local
domain without extra user-efforts.

Task-number: QTQAINFRA-1686
Change-Id: I1ef464a455cef5d331a3e2eb0194e2741172ef95
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Ryan Chu <ryan.chu@qt.io>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
This commit is contained in:
Ryan Chu
2018-07-02 14:57:17 +02:00
parent 4869ad6a49
commit e99fe6b354
6 changed files with 5 additions and 15 deletions

View File

@@ -1,5 +1,5 @@
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y apache2 libcgi-session-perl wget
RUN apt-get update && apt-get install -y apache2 libcgi-session-perl wget avahi-daemon
EXPOSE 80 443
# install configurations and test data

View File

@@ -1,5 +1,5 @@
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y gdebi-core=0.9.5.7ubuntu1 wget
RUN apt-get update && apt-get install -y gdebi-core=0.9.5.7ubuntu1 wget avahi-daemon
RUN wget http://ppa.launchpad.net/dajhorn/dante/ubuntu/pool/main/d/dante/dante-server_1.4.1-1_amd64.deb
RUN gdebi -n dante-server_1.4.1-1_amd64.deb
EXPOSE 1080-1081

View File

@@ -1,3 +1,3 @@
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y ftp-proxy=1.9.2.4-10
RUN apt-get update && apt-get install -y ftp-proxy=1.9.2.4-10 avahi-daemon
EXPOSE 2121

View File

@@ -1,3 +1,3 @@
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y squid=3.5.12-1ubuntu7.5
RUN apt-get update && apt-get install -y squid=3.5.12-1ubuntu7.5 avahi-daemon
EXPOSE 3128-3130

View File

@@ -1,5 +1,5 @@
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y vsftpd=3.0.3-3ubuntu2 ftp=0.17-33 wget
RUN apt-get update && apt-get install -y vsftpd=3.0.3-3ubuntu2 ftp=0.17-33 wget avahi-daemon
EXPOSE 20-21
# install configurations and test data

View File

@@ -48,15 +48,5 @@ sudo docker info
sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Append address and hostname of test servers to CI environment.
cat <<EOF | sudo tee -a /etc/hosts
# Docker-based network test servers
172.18.0.2 apache2.test-net.qt
172.18.0.3 squid.test-net.qt
172.18.0.4 vsftpd.test-net.qt
172.18.0.5 ftp-proxy.test-net.qt
172.18.0.6 danted.test-net.qt
EOF
# Start testserver provisioning
source "${BASH_SOURCE%/*}/../common/linux/testserver/docker_testserver.sh"