完全にメモ。
if(""): false if(0): false if(NaN): false if(null): false if(undefined): false if(x): true if(1): true if([]): true if([1]): true if([].length): false if([1].length): true
プログラムとか。作ってて ・試しててハマった事など。誰かのお役に立てば幸いかと。 その他、いろいろエトセトラ。。。
完全にメモ。
if(""): false if(0): false if(NaN): false if(null): false if(undefined): false if(x): true if(1): true if([]): true if([1]): true if([].length): false if([1].length): true
Dockerfileで例えばapt updateとかしてると下記エラー。
Err:1 http://security.debian.org/debian-security buster/updates InRelease Temporary failure resolving 'security.debian.org'
どうも、名前解決が出来てない。
理由は色々あると思うのですが、ホスト側のnameserverがdocker側のプライベートIP的なのと
似た感じになってるとdockerから見れて無くてエラーになるっぽい。
この場合はdockerのdns指定して立ち上げるようにする。
dnsはGoogleが公開してるDNSサーバ(8.8.8.8)使う事が多い模様
docker run --dns 8.8.8.8 -it busybox nslookup www.example.com
dns: 8.8.8.8
ただ、docker-composeはどうもうまくいかなかった。
docker-composeの場合、ホスト側の 「/etc/resolv.conf」がそのまま取り込まれてるっぽいのですが、
上記のdnsの指定が効かないんですよね。。。
何でなんだろ。
下記ファイルを編集(無かったら作成)
sudo vi /etc/docker/daemon.json { "dns": ["8.8.8.8"] } # あとリスタート sudo systemctl restart docker
※多分このやり方はあまりお勧めじゃないように思うけど、compose側の設定効かない時はこれでいくしかなさそう。
参考