dockerで日付を設定する

sudo dateでも許可がない場合 docker上のマシンの日付が合っていなくて、 sudo date -s でも「date: 日時を設定できません: 許可されていない操作です」 などと出てなんだこれはと思ったとき docker runコマンドに –privileged オプションをつける こんな感じで起動する docker run --rm -it --privileged kakkyz81/dev sudo date -sが利用できるようになる 参考 DockerのOperation not permittedとの戦争

新しいandroid端末、huaweiのhonor8とても良い

これまで、android4.2の端末使っていたけれど さすがにポケモンgoがやりたくなった。 新しい端末を探して、google Pixelの発表まで待ったけど 日本発売が未定ということで、迷ったものの 価格的にもお手頃だったhonor8を楽天モバイル で購入。 これだけの端末が35800円というのはうれしい。 (実際には事務手数料3394円が追加でかかる) 端末は白、データ通信のみのプランにした。 ポケモンgoも快適にプレイできていて、 カメラの写真もなかなかきれいに取れて満足。

プラグインマネージャにvim-plugを使ってみる

vim-plugとは vimのプラグインマネージャで、なんかシンプルらしい Link: おい、NeoBundle もいいけど vim-plug 使えよ 今まではVundleを使っていたけど、使ってみることにする。 設定 github を見ると、autoloadにダウンロードしたファイルを 置くように書いてあるが、普通にgit cloneしてsourceで使える vimrc例 let s:vim_plug_url='https://github.com/junegunn/vim-plug' if !filereadable(expand('~/.vim/vim-plug/plug.vim')) call system("git clone " . s:vim_plug_url . " " . $HOME . "/.vim/vim-plug/") endif source ~/.vim/vim-plug/plug.vim call plug#begin('~/.vim/plugged') Plug 'ctrlpvim/ctrlp.vim' Plug 'project.tar.gz' call plug#end() 上記の例では、存在しないときにgit cloneして、sourceで読み込みしている 遅延読み込み 詳しくはgithubのREADMEを見る。 ファイルタイプ別に使うプラグインは以下のように Plug 'nelstrom/vim-markdown-folding', { 'for' : 'markdown' } 遅延読み込みされているかは:PlugStatusコマンドを使う。 Finished. 0 error(s). [========] - ctrlp.vim: OK - vim-markdown-folding: OK (not loaded) - project.tar.gz: OK

websockifyを中継に使ってブラウザからwebsocketでtelnet接続する。

websockifyは、websocketのsocket通信をtcpに変換してくれるツールのようで、 サンプルを動かしてブラウザからwebsocketでtelnet接続ができるようになったので手順をメモ。 動かした結果です docker上のサーバにブラウザ上からtelnet接続してます。 実行のためには サーバ側 telnet接続ができるように設定する sudo apt-get update sudo apt-get install telnet telnetd inetutils-inetd -y /etc/inetd.confのtcpの部分をtcp4にする /etc/hosts.allowに接続元を設定する sudo /etc/init.d/inetutils-inetd restart https://github.com/kanaka/websockify をダウンロードして、 makeを行ったあと、 sudo ./run 2023 --wrap-mode=respawn -- telnetd -debug 2023 でtelnetサーバとの中継を起動する 参考リンク Ubuntuにtelnetで接続可能にする。一般ユーザだけでなく、rootユーザでも接続可能にする。 ubuntuでtelnetdをIPv4で上げる方法 クライアント側 https://github.com/kanaka/websockify をダウンロードして、wstelnet.htmlをブラウザで開き、 IPとPORTを入力する とりあえずつながってなんとなくすごいと思ったものの 応用で何に使うかは難しそう・・・新しく何か作るなら、あえてtcpに変換しなくてもwebsocketで良さそうな気もしますし。

dockerで接続したときにroot以外のユーザーを使う

dockerを開発環境として、ターミナルからログインして利用する際にrootのままだと気持ちが悪いので 個別ユーザを作って、そちらで操作するようなことをしています。 dockerfileの記述(ユーザ名:myuser) # add user RUN mkdir /home/myuser && \ groupadd -g 1000 dev && \ useradd -g dev -G sudo -s /bin/bash myuser && \ echo 'myuser:myuser' | chpasswd 一方、docker runでbashを起動してログインする場合、rootでログインしてしまうので docker run -it myuser/dev /bin/bash を実行した後に、毎回 su - myuser を入力する必要があり面倒です。 なので、dockerfileに以下の記述を追加します。 # login as user RUN echo "\nsu - myuser" >> /root/.bashrc これで自動的にmyuserでログインできます。

dockerをwindowsで使うときに自動でputtyまで起動するバッチファイルを作る

バッチファイルをダブルクリックするだけでvm立ち上げてputtyで接続してくれたらうれしいと思った 事前に、puttyのGUI画面で docker という名前で、接続できるように設定を保存しておく。 CUIからは、putty -loadのオプションで、保存した設定を呼び出せる。 以下のようなバッチファイル docker.bat を作成してダブルクリックする。 set docker="C:\Program Files\Docker Toolbox\docker-machine.exe" set vm="default" set putty="C:\apps\putty\putty.exe" %docker% start %vm% start "" %putty% -load docker 満足。 参考:Puttyを再考する。 puttyのコマンドまとめ 追記(2015.09.22) プログラム起動の時は start “” %プログラム名% で起動すると、別プロセスで起動できるので コマンドラインの画面が自動的に閉じてなお良い。

boot2dockerをカスタマイズして毎回起動時のコマンド入力を自動化

大したカスタマイズではなく、単純に毎回ログイン時に sudo mkdir /windows && sudo mount -t vboxsf -o uid=1000,gid=50,iocharset=utf8 windows /windows と入力していたのがめんどいのでカスタマイズする方法ないのかと調べたところ /var/lib/boot2docker/bootlocal.sh に記述すればOKとのこと 参考:qiita:boot2dockerのデータ永続化まとめ

hugoのレイアウト、tagsやcategoriesをメニューに表示する

作ったレイアウトファイル(layouts/partials/header.html)で、以下の表示がある。 <ul id="menu2" class="li-menu-items"> {{ range .Site.Menus.main }} <li><a href="{{.URL}}"> {{ .Name }} </a></li> {{end}} </ul> この Site.Menus.main の値をどこに書くかというと、config.tomlに書く。 tomlの記述方法がよくわかってないが、とりあえず以下のように書いたらメニューに表示される [[menu.main]] name = "tags" url = "/tags/" [[menu.main]] name = "categories" url = "/categories/"

hugoでlayoutのカスタマイズをする

既存のテーマを変更する場合 $hugoroot/themes/xxxxxxx のファイルを $hugoroot にコピーして使う。 $hugoroot/layoutsなどの方のものが優先で読み込まれる $hugoroot は hugo new site したブログのルートディレクトリ config.tomlの theme=xxxxx は消してもOKになる

tmux起動時のコマンド入力を自動化ほか

tmux起動してから毎回行う定形のコマンドをスクリプト化する tmux-devというコマンドを作成する tmuxの中にいればメッセージ出力、 すでにtmuxが起動されていればattach、 何も起動されていない時、設定ファイルを読み込んでtmux起動。 #!/bin/bash if [ -z $TMUX ]; then if $(tmux has-session 2> /dev/null); then tmux -2 attach else tmux -2 new-session \; source-file ~/dotfiles/tmux-dev-hugo fi else echo ' *** you already in tmux *** ' fi tmuxのsource-file hugo -w -D (ドラフトも含めて更新を監視、更新時にファイルをリビルド)のコマンドを実行するwindowを作成 そのあと、メインのwindowに戻って入力待ち状態に # start hugo with watch mode new-window -n hugo send-keys -t hugo 'cd ~/hugo && hugo -w -D' C-m select-window -t 0