とりあえず
・「apk add inadyn」がない・https://help.dyn.com/inadyn/ から http://cdn.dyndns.com/inadyn.zipを取得
実行するが「permission denied」で動かない
・ソースからビルドすると出来上がるイメージが105MBくらいになる。
※gccやmakeなどをきれいに消せばいいかも知れないがわからない。
なので
マルチステージビルドで構築構成
ddns ├Dockerfile └inadyn.conf
Dockerfile
# inadynをビルド FROM alpine:latest as alpine_ddns # ビルドのツール RUN apk add --no-cache gcc libc-dev make # ビルド対象:inadyn WORKDIR /tmp ADD http://cdn.dyndns.com/inadyn.zip . RUN unzip inadyn && \ cd inadyn/ && \ make && \ cp ./bin/linux/inadyn /usr/sbin/ && \ chmod +r /usr/sbin/inadyn && \ rm -fR /tmp/* && \ apk del gcc libc-dev make && \ rm -fR /var/cache/apk/* # 実行ファイルのみ取得 FROM alpine:latest COPY --from=alpine_ddns /usr/sbin/inadyn /usr/sbin/inadyn CMD ["/usr/sbin/inadyn"] # /etc/inadyn.conf 以外に作成する場合 # CMD ["/usr/sbin/inadyn", "--input_file", "/etc/inadyn.conf"]
inadyn.confを用意
## inadyn configuration file #update_period_sec 600 # Check for a new IP every 600 seconds # DynDNS username and password here username *** password *** dyndns_system dyndns@dyndns.org ## Dynamic DNS hosts alias *** iterations 1DynDNSのサイトでテンプレートを作成したものを、systemdでスケジュールする予定なので1回起動して終了するように変更
#↓コメント #update_period_sec 600 #↓追加 繰り返し1回 iterations 1ビルド&実行
docker build . -t ddns_alpine docker run -v ${PWD}/inadyn.conf:/etc/inadyn.conf --rm ddns_alpine実行ログ
INADYN: Started 'INADYN version 1.96.2' - dynamic DNS updater. I:INADYN: IP address for alias '***.dyndns.***' needs update to '***.1.184.***' I:INADYN: Alias '***.dyndns.***' to IP '***.1.184.***' updated successful.イメージのサイズ
REPOSITORY TAG IMAGE ID CREATED SIZE ddns_alpine latest 81cdd3c60668 4 seconds ago 5.65MBマルチステージを使わなかった時
REPOSITORY TAG IMAGE ID CREATED SIZE ddns_alpine latest c52ecb23f6e2 11 seconds ago 105MBdocker-compose.yml
version: '3' services: inadyn: build: . volumes: - ./inadyn.conf:/etc/inadyn.conf
docker-compose up ※-dは付けない今後の予定
systemdでスケジュール化?cron?
0 件のコメント:
コメントを投稿