メモ。
# 今のUNIXTIME date +%s # UNIXTIMEを西暦日時表示 date -d @1607001913 +"%Y/%m/%d %T" # UNIXTIMEの一日 86400
プログラムとか。作ってて ・試しててハマった事など。誰かのお役に立てば幸いかと。 その他、いろいろエトセトラ。。。
メモ。
# 今のUNIXTIME date +%s # UNIXTIMEを西暦日時表示 date -d @1607001913 +"%Y/%m/%d %T" # UNIXTIMEの一日 86400
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側の設定効かない時はこれでいくしかなさそう。
参考
CentoOS。Pythonから***.soみたいな共有ライブラリを呼ぶ必要があったのでちょっと調べた。Python3.6。
呼び方は↓。
import ctypes LIB_PATH = '/hoge/fuga/libmodule.so' lib = ctypes.cdll.LoadLibrary(LIB_PATH ) res = lib.hogefunc() #intの引数とるやつ arg_int= ctypes.c_int(10) res = lib.fugefunc(arg_int)
関数呼ぶのは上で行けるんだけど、引数が結構ややこしい。基本的には公式のctype見ればいいんだけども。やっかいなのが「char *」。ポインタの場合は↓の感じ。
str="some args str" strb=bytes(str , encoding='utf-8', errors='replace') strp=ctypes.c_char_p(strb ) res = lib.mogefunc(strp)
一回バイト配列に変換してからポインタに変換しないとダメみたいですよ。