Skip to content

Instantly share code, notes, and snippets.

@mapk0y
Last active August 27, 2016 17:32
Show Gist options
  • Save mapk0y/8bc6555959719e0159116e3f550c2232 to your computer and use it in GitHub Desktop.
Save mapk0y/8bc6555959719e0159116e3f550c2232 to your computer and use it in GitHub Desktop.
AlpineLinux 3.4 以降で dns search が優先される問題

AlpineLinux 3.4 で名前解決の際に、dns_search があるとそちらが優先される。

  • resolv.confsearch sakura.ne.jp がある。
  • http://image/ にアクセスをする。
  • image の名前解決をせずに、image.sakura.ne.jp の名前解決をしてしまう。
  • options: ndots:0 が設定されているがこれも無視されている模様。

解決策

dns_search を空にすることで回避。
あまりよい方法ではないが、今回のベンチマークに関してはこれで回避はできるのでこれで...。

diff --git a/docker-compose.yml b/docker-compose.yml
index af244b6..243c0e7 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -2,11 +2,8 @@ version: '2'
 services:
   bench:
     build: ./bench
-    image: matsuu/pixiv-isucon2016-bench
+    dns_search: ""
     command: ["-t", "http://image/"]
   image:
     build: ./image
-    image: matsuu/pixiv-isucon2016-image
-    ports:
-      - "80:80"
     privileged: true

その他変更内容

  • build と image が混在するとわかりにくいので削除
  • ports(ホストネットワ-クでの NAT)は不要なので削除
  • 現在の AlpineLinux:3.4 (6月頃?)から musl libc が resolv.conf の search を考慮するようになったようだが挙動としてはそちらを優先してしまう
    • AlpineLinux:3.3 までは search は見ないという挙動だったはず。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment