Pythonで作った自動化をDocker化

Pythonで作った自動化スクリプトを、Macで動かすこともできるけど、サーバー上でdockerの1つとして動作するようにしたい。

Python環境の明確化

venv使った利点でもある。以下のコマンドで使用しているライブラリを明確化

あとから、

とすると、同様の環境が簡単に構築できる(ハズ)。

PythonのDocker

まぁ、本家のPython以外を選択する理由はないです。特に追加の複雑なPackageが必要とすることもないので。

Docker imageの構築

Docker imageの実行

きちんと動作するか、条件が成立したときに期待するメッセージが送信されるか確認。(この場合は、部屋の明かりを消して、AC100がリモートでOFFされるか確認)

サーバー環境へ必要なファイルのコピー

サーバーにコピーが必要なファイルは、以下の通り。

  • Dockerfile
  • requirement.txt
  • App.py

必要なファイルをサーバーへ持って行って、同じ操作をすれば、サーバーで動き出す。

  • % docker build -t myautomation:1.0
  • % docker run –restart=always –detach myautomation

ちなみに、以下のように起動すると、起動時にバックグラウンドで実行され、サーバーが再起動時に自動的に実行される

Docker imageの実行

まとめ

venvを使って、ローカルに専用環境を構築して、その環境をサーバー上のDockerに再現して動作させる手順でした。
ほとんど、MQTT関係ないという・・・

でも、部屋の加湿器操作の自動化ができました!

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です