2018年7月30日月曜日

docker container から X の画面を出すときの SELinux

ドメインソケット経由で docker コンテナからホストの X Server に画面を出すのは Web に結構情報があるのでそれは良いとして、SELinux Enforcing な環境だと Socket へのアクセスが Permission Denied になってちょっとだけハマったので自分のためのメモ。

docker run のときに以下オプションをつけるとうまく行った。
  --security-opt label=type:container_runtime_t

2018年7月23日月曜日

Fedora 28 on Thinkpad X1 Carbon 6th な環境で docker がうまく動かなかった→動いたの個人的メモ

X1 Carbon gen 6th に Fedora 28 をインストールしてるんだけど、どうも docker まわりが不安定になった。が、回復したので適当にメモ。

512GB(SSD) に自動で LVM を切って、普通に dnf install docker したら勝手に
docker-pool なる LV を 178GB もとられてしまった。どうも最近の Fedora の docker は root パーティションがある VG に空きがあると、自動で Storage Driver を devicemapper にしてくれる模様。これはこれで良いのだが、このときの LV のサイズが空き容量の 40% がデフォルトらしい。

これは /usr/share/container-storage-setup/container-storage-setup に以下の定義があることでわかる。
DATA_SIZE=40%FREE

どうも Thin provisioning のようなので、実際に利用されているディスク量しか消費されないのだと思うのだが、vgdisplay で見ると残量が単純に 178GB を引き算された値になってる。何か気持ち悪いので docker を一回アンインストールしてインストール後、 /etc/sysconfig/docker-storage-setup に以下を記述して docker デーモンを起動した。
DATA_SIZE=20G
lvdisplay で docker-pool が 20GB になってることを確認。まぁこれくらいのサイズでいいだろう。

しかし、今度は docker デーモンは立ち上がるものの、試しに docker run -it --rm fedora:28 /bin/bash などとしてもコンテナがすぐ終わっちゃう。/var/log/audit/audit.log になんだか denied がたくさん出てるので、setools を入れて audit2allow でごまかそうと企む。

 とりあえず、tail -f /var/log/audit/audit.log としておいて docker run ... を実行する。吐かれたログをコピペして別ファイルに保存。で、以下のように audit2allow にかませる。
audit2allow -M docker < /tmp/docker-audit

出来た docker.pp ファイルを semodule にかませる
semodule -i docker.pp

これを 2 回繰り返したら docker run ... 出来るようになった。ちなみに追加した許可は以下。

allow container_t container_file_t:chr_file { read write };
allow container_t container_file_t:chr_file { getattr ioctl open };
うーーん、docker をアンインストールしたときに何やら外れたんだろう。もっとスマートな直し方がありそうなもんだけど、まぁいいや。

2018年7月21日土曜日

X1 Carbon 6th Fedora でマウス動かない

現在 Fedora 28 を X1 Carbon 6th にインストール中。
GUI インストーラでマウスが動かない。

カーネルパラメータに以下を追加でおけ。

psmouse.synaptics_intertouch=1 

もしかして茨の道なのかも。

2018年7月8日日曜日

Android Studio で java.lang.ClassNotFoundException: android.view.View$OnUnhandledKeyEventListener

Android Studio の Design がまともに動かずコンポーネントを配置してもそれが Blueprint 上で見えない...んで以下のエラーが発生してる状態。

java.lang.ClassNotFoundException: android.view.View$OnUnhandledKeyEventListener

どうも SDK 28 の問題らしく 27 にしたらエラーが無くなった。以下の情報参照。

https://stackoverflow.com/questions/50856622/failed-to-find-style-coordinatorlayoutstyle-in-current-theme-in-android-studio

Change the android{ in "build.gradle" in app file
compileSdkVersion 28 to compileSdkVersion 27
targetSdkVersion 28 to targetSdkVersion 27
also, try to change implementations like
implementation 'com.android.support:appcompat-v7:28.0.0-alpha3' to
implementation 'com.android.support:appcompat-v7:27.1.1'