Django GirlsチュートリアルでつくったものでDockerfile作成

まずDocker Hubで使いたいイメージを探します。
公式のものなど、なるべく信頼できるイメージをつかった方が良さげです。
Django Girlsチュートリアルでつくったものはこちらです。

$ ls 
blog            manage.py        myvenv 
README.md        db.sqlite3        mysite            requirements.txt

元になるイメージはpython:3.7.5-slim-busterを選びました。
Django起動時に打ち込んでいるコマンドを
Dockerfileに書き込んでいきます。

$ vi Dockerfile 

FROM python:3.7.5-slim-buster 
COPY . /app/ 
WORKDIR /app 
RUN pip3 install -r requirements.txt 
RUN python3 manage.py collectstatic --noinput 
CMD python3 manage.py runserver 0.0.0.0:8000

イメージ名にはわかりやすい名前をつけて
タグにはバージョン(日付や0.1.0など)を指定してあげると良いです。
無記入だとlatestになります。

$ docker build -t [イメージ名]:[タグ] . 
例えば 
$ docker build -t djangogirls:0.1.0 .

最後のドットを忘れないように注意です。
一覧を出すには

$ docker images 
REPOSITORY        TAG          IMAGE ID             CREATED              SIZE 
djangogirls              latest        53a38ee83c1a      24 minutes ago 

Dockerを走らせる前に
ローカルで何か走っていないか確認します。
※特にローカルで走らせているものがなければ、以下読み飛ばしてもOKです。

$ ps -ef | grep runserver 
  502  2437   479   0 土02PM ttys000    0:00.60 /Library/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python manage.py runserver 
  502  2438  2437   0 土02PM ttys000   58:01.79 /Library/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python manage.py runserver 
  502 26677 13920   0  3:55PM ttys003    0:00.01 grep runserver

とても大まかに書くと

2437(子:Django)    479(親:shell) 
2438(子:Python)   2437(親:Django) 
26677 13920 => いま検索したgrepコマンドが走っているので無視

だいたいこんな感じです。
shellは殺さず、2437を殺せば親のDjangoもろとも子の2438も死ぬので
Djangoで走りっぱなしでいたrunserverをkillします。

$ kill 2437

killできたか確認。

$ ps -ef | grep runserver 
  502 26680 13920   0  3:55PM ttys003    0:00.01 grep runserver

Dockerを走らせます。djangogirlsはDocker IDでもOKです。

$ docker run -it --rm -p          djangogirls

下記にアクセス

http://127.0.0.1:8000/

できた👏

Tips
全体的に重かったので.dockerignoreを作成し、いったん無視するファイルを指定します。

$ vi .dockerignore 

myvenv 
db.sqlite3

myvenvは仮想環境なので不要です。
db.sqlite3はDockerに乗せるには今後重くなる可能性が高いので
もしデプロイする際にはMySQLなど外付けDBを使っても良いかもです。
ちなみにDBをignoreで無視するとDockerを走らせた際に赤文字で

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, blog, contenttypes, sessions. 
Run 'python manage.py migrate' to apply them.

このようにDBに問題ありなどと表示されます。
あえてignoreしている場合はスルーです。

UNIX歴史講座/スクレイピングハンズオン

きょうは座学とハンズオンのハシゴでした。
ハシゴは結構疲れることを学んだ。

平成生まれのためのUNIX&IT歴史講座 〜jus黎明期編/UNIX Fair編〜 – connpass

これです。

登壇されていた 岸田孝一さん(jus初代会長)
シグマ作戦の初代リーダーもしていたと知って驚きました。

花の手配の関係上、名前は知っていたので
実物がみたいなあとおもって行ったのだけれども
想像以上の、歴史の生き証人といった感じだった。

1970年代当時、UNIXのライセンス料は1台目が43000ドルで
当時230円/ドルだったため
ライセンス料だけで約一千万円して
今の物価で考えると気が遠くなるような値段だなとおもいました。

導入している企業や団体も少なくて
当然root権限をもっているもごくわずかで
「root権限をもっているひとの会」
のような集まりもあったらしい。
root権限って普通にあるものじゃなかったのか…

コードをネットからDLもできなかったので
(そもそもインターネットが無い)
コードを手打ちして性能を見るなどしていたという話を聞いて
できないことが多すぎてびびりました。

日本UNIXユーザ会(jus)が主催していたUNIX Fairについて
セミナーへの参加費が9万円だとかで
最近だと無料のセミナーが溢れているのに
当時の会報には
「 参加費が5桁に収まったのが画期的」
と書かれていて、感覚が違うの。たっか!ってなった。

Bill Joy氏の講演があって

> ジョイの最大の貢献としてはviエディタとCシェル(csh)の開発がある。

Wikipediaより引用

ものすごいひと呼んでいるなあとおもった。
viエディタの開発者、、、ふつうに講演聴きたい。

「平成生まれの」と銘打ってはありましたが
参加者はほとんど昭和生まれのように見えました。
面白かったけどなぁ。

司会の方がとても上手くて
司会が本職ではなく、普段はフリーランスエンジニアの
日本UNIXユーザ会幹事(元会長)という肩書きの方なのに

会場のメインな視聴者でもある
昭和生まれの方々にも通じるようなジョークもまじえつつ
平成生まれが置いてきぼりにならないように
解説的な合いの手を入れて進めてくださったので、手腕に感動しました。
すごい


そのあとは、そのままスクレイピングのハンズオンです。

[秋葉原] 初心者向けPython入門会 スクレイピング編 (初心者大歓迎!) – connpass

教材はこちらをつかいました。

https://github.com/KengoTobita/python_scraping

PCの🍎マークに重ねてラズパイのスッテカー貼ってあるので
さっそく
「素敵なラズパイですね!」
ってやりとりしました。
実はMacBookというオチ付きです。
特にPython系の勉強会では、必ずといって良いほど触れてもらえるし
ラズパイのひとで覚えて貰えるので
目印になって良いかもしれない。

レベル感的にはちょうど良いくらいで
ライブラリや関数名など
「見覚えあるぞ」
ってものも増えてきたの。
今後も継続してPythonやphp触っていきたいなあ。

慣れれば慣れるほどできることが増えていくの楽しい。

最後に講師の方が紹介してくれたツールが

https://github.com/scrapinghub/portia

GUIでスクレイピングできるon Dockerみたいなツールらしい。
これはちょっと試してみたいぞ。
また後日やってみたらblog書きます。

とりあえず勉強会に参加しすぎなアホみたいな感じになってきたので
しばらく大人しくします。疲れちゃうしねぇ

Webアプリ制作byPython@DjangoGirls

DjangoGirls主催の女子限定ハンズオンへ行ってきました。

PythonでWebアプリを作ろう [女性対象/男女コーチ◎] 2019.9 – connpass

初めてWebアプリつくったの、とっても楽しかった。

チュートリアルを参考につくったの。

とてもわかりやすくて、よく出来ているなあと感じたので

ぜひトライしてみてください。

Django Girls Tutorial


最初はvimのみでディレクトリの作成からファイル内の編集までやっていて

途中からPython書くときもVSCode使えばラクなのでは?

とおもって使い分けをはじめたの。


今までHTML/CSS/JSはVSCodeで

設定ファイルなんかはvimで

MastodonでAnsibleの設定を書くときはもっぱらvimなので

‘ターミナルから何かするときはvim’ という謎の固定観念があって

自分のやりやすい方法を見つければいいんだなあとおもったら

とてもサクサク進むようになった。


Djangoをいれてディレクトリやファイルなどがバーっと作られて

それをターミナルからチェックしていたため

ファイルなどもvimで編集していたの。

VSCodeで開いたらすごく見やすくて

vimのチューニング一切していないのもあるのだけれども

いままでクラウドのサーバー内で作業することが多かったので

「VSCodeでも見ることができる!!」というのがプチ感動だった。


ターミナル内でさっと開ける上にとてもシンプルで

ショートカットを覚えるとどんどん使いやすくなって

改めてvimが好きになりました。

Emacsな師匠に悲しい顔をされそうですが

Spacemacsも使いこなせるようになりたいです。

自分でキーバインド設定も魅力的!

完成品こちらです

GitHubにはあげました。

suwa3/djangogirls

デプロイまだです。

ラズパイに置きたい♡

nail/Lodge

久しぶりのネイルいってきました。

グレージュにしたの、くすんだピンクぽくて気に入った。

.

ネイルのあとはそのままYahoo!のLodgeへ直行した。

.

Kubernetesの予習をしていて

https://kubernetes.io/blog/2019/07/23/get-started-with-kubernetes-using-python/

.
PythonをつかってKubernetesをやってみようのページを試していました。

.
途中で低気圧のせいか頭痛がして

お薬を買いに行く途中吐き続けて、意識朦朧としてきたので帰宅したよ。

.

低気圧で具合が悪くなり過ぎるので

先日病院でいろいろと検査をして頂いて

「問題ないです」

と言われたばかりなのだけれども

台風の前や弾丸低気圧あると体調つらいなあ。
.

夜には少し体調が回復したので

Mastodonのユーザー開放で

登録してくれた方々の承認をしました。

脱おひとり様した。

保全を最優先してがんばるぞ。

.

EC2上にどんすわのDocker上にあるものを

そのまま直置きでサブ鯖立てよかなとおもっていたけれども

せっかくKubernetesの予習しているなら

クーバでクラスタ組む練習やってみたいなあとおもいました。

ブラシ付きモータードライバIC

有用そうな記事を見つけたので貼るね。

https://qiita.com/stnk20/items/f614ae1471b9e555708a

(上記サイトから引用)

Raspberry Piを基盤にカメラの画像からPythonで自動制御させている。

組み立て方がハマりやすいところまで詳細に書かれているしソースコードもある。

.

https://tech.drecom.co.jp/self-driving_on_raspberrypi/

(上記サイトから引用)

こちらはDeep Learningさせている。

かなり理想に近いものなので参考にしたい。

.

秋葉原のパーツショップいくつか目星をつけて

この商品があるか問い合せたの。

マルツには在庫無しで千石電商さんの分店に電話したら

「本店にあるかも」

ということで

本店に1時間で5回ほどかけてようやく繋がり(通話中だった)

在庫あること確認しました。やったねえ。

週末にブレッドボードやジャンプワイヤもあわせて買いにいきたい。

秋葉原なんでもそろうの素晴らしいね。

.

なんだか気持ちが忙しないなあとおもった。

朝は満員電車で日中は職場のひとのなかで

渋谷はどこを歩いていてもだいたい周りにひとが沢山いるし

帰りも満員電車にのって

家にいても一人になれる時間がなくて

数時間で良いので、一人でゆっくりする時間ほしいなあとおもいました。