systemd-nspawnを使ってみた

使ってみた

当初は conoha に立てた Arch Linux へ Docker をインストールして、そこでredisとかnginxとかを動かそうかと調べていた。
しかし、systemdが動いてるなら systemd-nspawn なるコンテナ型仮想化システムがいい感じだと風の噂で聞いたのでこちらを試すことにした。

習うより慣れてみる

コンテナ化の知識は全くなく、Dockerでさえどうやって使うのかさえ分からなかった。
自分で構築したことでそれなりに理解出来た…気がする。

以下はとりあえず、Arch Linux のsystemd-nspawn の解説をかいつまんで進行します。
ぶっちゃけちゃると、今回の記事の情報はArchWikiに全部載ってます。
ArcyWikiは、Linuxに関する基本的なところから充実の内容なのでビギナーの方からでもお勧めです。

コンテナの作成

mkdir ~/MyContainer
pacstrap -i -c -d ~/MyContainer base

コンテナの手動起動

systemd-nspawn -bD ~/MyContainer

-bDn という感じで書くとエラーで起動しないです。

コンテナのサービス起動

systemctl enable machines.target
mv ~/MyContainer /var/lib/machines/MyContainer
systemctl enable systemd-nspawn@MyContainer.service
systemctl start systemd-nspawn@MyContainer.service

トラブルシューティング

pacstrapがインストールされていない

sudo pacman -S arch-install-scripts

上記のスクリプトをインストールすることでいろいろ便利スクリプトが入る。

ログインが出来ない

arch-nspawn login: root
Login incorrect

こう出たときはコンテナのディレクトリ上にある /etc/securetty のターミナル名のリストに pts/0 を追加。このファイルはホストから開く(どっちにしてもログインできないので)。

ホストとRedisコンテナとuwsgiコンテナをProxyで繋いだりしたのでそこら辺も書く予定。

Sublime Text 3 のPHP系プラグイン覚え書き

自分が使用しているSublime Text 3 の PHP向けのプラグインメモ。
随時追加していく予定。

Windows Application

Sublime Text とは関係ないけど、PHPerは使用できるようにしておいた方がいいと思われるアプリケーション。

Composer

PHP界隈では必須になりつつあるPEARに変わるライブラリ管理ツール。

  • インストール 公式サイト: Composer
  • 下記パスを環境変数に追加
    ※追加しないとcomposerでインストールしたものがパス無しで実行できない
%USERPROFILE%AppDataRoamingComposervendorbin

登録するコマンドは下記

composer config -g repositories.packagist composer http://packagist.jp

完了

Sublime Text 3 Plugins

SublimeLinter

SublimeLinter-phpcs

コマンドラインツールのPHP CodeSnifferを使用するとコーディング規約をチェックしてエラーを表示してくれる

  • コマンドラインツールのインストール
composer global require squizlabs/php_codesniffer=*

SublimeLinter-phpmd

コマンドラインツールのPHP Mess Detectorを使用するとプログラムで怪しいところをチェックしてエラーを表示してくれる

  • コマンドラインツールのインストール
composer global require phpmd/phpmd=*

ST3 日本語環境向けプラグイン SublimeCodic の紹介

SublimeCodic とは?

プログラミングで使用する日本語を技術者向けに英語へ翻訳してくれるサイトの翻訳APIをSublime Text 3で使用できるようにしたプラグインです。
github:SublimeCodic

この素晴らしいAPIを提供していただいているCodicのサービスは、公式サイトからも使用できます。
codic 公式サイト

このプラグインを作成はしたものの、すでにほぼ同一のCodicへのプラグインがPackage Controlへ公開されており、また公式でも公開しているので私が作成したプラグインの存在意義はかなり薄いです…。
私はもちろん使っていますが…。

それでも使ってみたいという奇特な方は、githubに登録方法などが記載してあります。
ぜひご活用ください。

今後の予定

現状は特に無さそう。
要望には対応できそうなら対応します。