PyPIに登録されているPythonパッケージのソースコードをダウンロードする際、毎回PyPIのページを開くのが面倒だなーと思ってたのだけど、pipでダウンロードできた。
pip download --no-binary :all: --no-deps <package>
Raspberry Piを買ったのはかなり前だったりするんですが、放置してたのを動かしてみました。
とりあえずはLチカ
main.py
from RPi import GPIO import time def main(): GPIO.setmode(GPIO.BOARD) GPIO.setup(12, GPIO.OUT) try: state = True while True: GPIO.output(12, state) time.sleep(1) state = not state finally: GPIO.cleanup() if __name__ == '__main__': main()
$ sudo python main.py
6/18に北海道のオープンソースカンファレンスでDjangoの紹介をしてきました。 www.ospn.jp 説明が急ぎ足になったり、デモが中途半端に終わってしまって申し訳ない感じですが、聞きに来てくださった方はありがとうございました。
いくつか面白いセミナーもあったし、ビールとジンギスカン良かったので、また来年も参加できればいいなーと思います。
www.slideshare.net github.com
プライベートで使ってるVPSの環境をdocker-composeで動かしたのだけど、忘れてもいいようにメモを残す。
ホストOSは、Ubuntu16.04。
dockerは手順通りaptでインストールすればよい。
Installation on Ubuntu
docker-composeは、dockerとは別途インストールが必要(1ファイルのコマンドをダウンロードして配置するだけ)
Install Compose
dockerコマンドを実行するユーザーはdockerグループに属している必要があるので、インストール後にusermodで設定しておく(usermodで設定したグループは再ログインで反映される)
DockerHubからpullしてくるか、Dockerfileを作成してビルド(docker build)する。
ビルドの際に、名前の指定をしとかないと、無名になりハッシュ値で指定することになる。
なるべくオフィシャルのイメージを使って、自前ビルドや野良ビルドのイメージは避けたほうがよさそう。メンテが面倒。
野良のイメージを使う場合は、セキュリティに注意する。バックドアが仕込まれたイメージなどもあるらしい。
docker runコマンドで起動されるが、これはコンテナ作成+プロセス実行であって、実行が終わってもコンテナが消えないで残るので注意。
コンテナ一覧はdocker psで見れる。-aオプションを指定すると、実行中以外のコンテナも表示される。
docker ps -a
終了したプロセスの再実行はdocker startでできる。
runの際にポートマッピングやvolumeのマウントなど、全部指定する。コンテナ名をちゃんと指定したほうがよい。
「-d」 (detouch) オプションを指定しないとforegroundで実行される(systemdやsupervisorなどから監視させるならdetouchしなくていい)
docker-composeで管理するなら、docker-compose.ymlにrunのオプションを書いてしまう。
docker stopで停止できる。停止してもコンテナは消えないので、startで再度実行できる。
docker restartでプロセスを再起動できる。runで指定したオプションを変更するならコンテナの再生成が必要かも?
設定ファイルが入ったディレクトリをVOLUMEでマウントさせとけば、restartでプロセスに読み込ませるのも可能か。
docker runで実行するときに --restart オプションでalwaysを指定しておくと、プロセスが死んでもdocker-engineが自動で再起動してくれる。
また、alwaysの場合は、OSを再起動したときも自動で起動される。
Docker run reference -- Restart policies (--restart)
例:
$ docker run -d -v /tmp/ftp/:/srv/soloftpd/ \ -p 21:21 -p 50000-50009:50000-50009 \ --env OPTIONS="--masquerade-address=192.168.0.2" \ --name=soloftpd --restart=always tokibito/soloftpd
docker-composeを使って依存を記述すればいい。
docker-compose.ymlにdocker runのオプションなどを書いといて、複数のイメージをまとめてビルド、コンテナを作って実行するところまでやってくれるラッパーツール。
docker-compose up
でイメージをビルドしてコンテナを生成して起動までやってくれる。 -dオプションを指定すればバックグラウンドで実行できる。
docker-compose down
でコンテナを停止して破棄してくれる。
前回の計算以降、プランの見直しや通信回線の解約、契約を行ったので、メモを残す。
前回から5000円近く下がった。乗り換えに伴い、解約手数料や端末購入代金が発生したので、ペイするのは半年後ぐらいから。
ガラケーを辞めればもう少し下げれるけど、頑丈な通話用の端末をどうするかに悩む。
自宅のインターネット回線は、マンション一括契約のもので1,500円/月ぐらいなので、計算には入れてない。