Bitbucket API を利用してチーム情報の取得を可能にしてみました。一通りの機能が揃うまでまだ先は長いです。
カテゴリー: オープンソース
docker-compose.yml のバージョンは 2.1 でよかった話
当方では Docker コンテナーを作成するのに Docker Compose をよく利用しています。これまでバージョン 3 としてきたのですが、 swarm モードを使わないのであれば 2.1 でよいことに今更ながら気付かされました。むしろバージョン 3 だと使えない機能があるので、 swarm の機能が不要ならバージョン 2 系列がベストですね。
JSF で Google Sign-In を利用する実験
日本ではマイナーですが、現在 JavaServer Faces (JSF) で Google Sign-In for Websites を利用する取り組みをしています。
デモ サイト: https://apps.linuxfront.com/restapi/
ログインできるようにするのは実は簡単なので、ここからサーバー側との連携を追求していきます。
Docker コンテナーに IP アドレスを付ける方法
半分は備忘録ですが、 MACVLAN を使って Docker コンテナーに IP アドレスを付ける方法を記述します。
MACVLAN の設定
/etc/network/interfaces
の記述例:
allow-hotplug eth0 iface eth0 inet manual up ip link set $IFACE up arp off up ifup macvlan0 || true iface eth0 inet6 auto accept_ra 0 down ifdown macvlan0 || true down ip link set $IFACE down iface macvlan0 inet static address 192.0.2.2 netmask 255.255.255.0 gateway 192.0.2.1 pre-up ip link add link eth0 name "$IFACE" type macvlan mode bridge 1 iface macvlan0 inet6 static address 2001:DB8::2/64 accept_ra 2 autoconf 1 post-down ip link delete "$IFACE" type macvlan || true
補足: eth0
は IP 通信に使わないので ARP と RA を無効化しておきます。
Docker ネットワークの設定
コマンド例:
docker network create -d macvlan \ --subnet=192.0.2.0/24 \ --gateway=192.0.2.1 \ --ip-range=192.0.2.128/25 \ -o parent=eth0 \ network-name
Docker コンテナーの設定
コマンド例:
docker container --network=network-name \ --ip=192.0.2.3 \ image …
Dockerfile 中で鍵サーバーから公開鍵の取得を試みるとエラーになる
Dockerfile の中で gpg --recv-keys
を実行して公開鍵を取得しようとすると、エラーになったりならなかったりということがあったので、試行錯誤しながら対策してみました。
原因はおそらく IPv6 で鍵サーバーに接続しようとしたことで、 IPv6 を無効化することでひとまずエラーはなくなりなりました。
今回採用した IPv6 を無効化する方法は、 dirmngr.conf
に
disable-ipv6
を書くというものです。 gpg
のオプションではなかったので、これにたどり着くまでは少し遠回りでしたね。
追記
エラー メッセージはこうでした。
gpg: keyserver receive failed: Cannot assign requested address
Amanda にパッチをあててバックアップの不具合解消
https://github.com/zmanda/amanda/issues/69
Amanda に不具合があったので、パッチをあてて再ビルドしました。とりあえずば解消したようですが、レポートはまだおかしい感じも残っているような感じです。
Docker にマウントしたディレクトリに作られる root 所有ディレクトリ対策
Docker コンテナーにディレクトリをマウントして何か作業をすると、root 所有のディレクトリが作られてしまうことがある。
そのようなディレクトリが作られても簡単に削除できるようにするのに、あらかじめ次のコマンドを実行してディレクトリに ACL を設定しておく方法が使える。
find . -type d -exec setfacl -m d:u:${USER}:rwx {} \;
Azure Functions で Docker Hub 自動タグ付けに挑戦中
docker pull しなくてもタグ付けができるのではないかと考えて、自動タグ付け機能を Azure Functions で実現しようとしています。
ウェブフックで API を呼び出そうとするとコールド スタートでタイムアウトしそうなことが判明して、キューを介した非同期処理にすることで回避しましたが、API の呼び出しはまだこれからといったところ。このまま無事完成するのでしょうか。
https://bitbucket.org/linuxfront/functions-azure
Azure Functions のコールド スタートが遅い (その後)
コールド スタートが遅い問題はどうも require("request")
にありそうです。そうだとすると、ウェブフックから HTTP の呼び出しは応答時間的に厳しくなりますね。