Atomia DNS 容器

Atomia DNS master server 的 Ubuntu 14.04 容器。Atomia DNS 是一套多租戶的 DNS 管理平台,提供 API 與 Web 介面來管理 zone 與記錄。

Dockerfile

FROM ubuntu:14.04
RUN repo="$(wget -q -O - http://public.apt.atomia.com/setup.sh.shtml | sed s/%distcode/`lsb_release -c | awk '{ print $2 }'`/g)"; echo "$repo"
RUN echo "$repo" | sh
RUN apt-get install atomiadns-masterserver

已知問題

這份 Dockerfile 有一個結構性問題:每個 RUN 都是獨立的 shell,所以第一行設定的 repo 變數在第二行已經不存在,echo "$repo" | sh 實際上什麼都不會做,第三行的 apt-get install 因此找不到套件。

要能正常建置,需要把三步合併成同一個 RUN

FROM ubuntu:14.04
RUN apt-get update && apt-get install -y wget lsb-release
RUN repo="$(wget -q -O - http://public.apt.atomia.com/setup.sh.shtml \
      | sed s/%distcode/$(lsb_release -c | awk '{ print $2 }')/g)" \
    && echo "$repo" | sh \
    && apt-get update \
    && apt-get install -y atomiadns-masterserver

另外原版少了 apt-get update,也沒有先安裝 wgetlsb-release

建置與執行

docker build -t atomia-dns:latest .

# DNS 需要同時開放 UDP 與 TCP 53
docker run -d \
  -p 53:53/udp \
  -p 53:53/tcp \
  --name atomia atomia-dns:latest

架構說明

Atomia DNS 採 master / slave 分離設計:

這份容器只包含 masterserver,完整部署還需要 nameserver 節點。

相關資源


← 回到 Linux 系統管理

本目錄檔案