Docker上でPython3+bottle環境を構築し、MySQLと連携する【とりあえず動かす編】


はじめに

「優しいIT」という理念の基、ITコンサルタントをしている亀井亮介と申します!
現在、仕事では要求分析・要件定義を中心に上流工程をしていますが、プログラムも書きます!
今回はDocker上にPythonのフレームワーク"bottle"をインストールし、MySQLと連携します!
Docker+Python3+bottle+MySQLの情報はほとんどないので、インフラレベル10くらいの私はかなり苦戦しました…レベル10でバラモス倒した気分です(笑)

前回記事 Docker上でPython3+軽量フレームワークbottleを動かす
前回の記事は残しておきます。参考までに

目的

  1. コンテナは3台構成にする(アプリケーションにはPython、DBにはMySQL、データはBusyBox)
  2. MySQLのデータは永続化(DBのコンテナを再構築してもデータが削除されません)
  3. ソースファイルはローカルで操作し、保存するとDocker上のサーバに反映されるようにしました(ただし、エラー時にコンテナごと落ちるので開発するにはやりにくい?)
  4. Dockerインストールを前提に、GitHubからクローンして、Dockerfileとdocker-compose.ymlファイルで一発で起動させる

手順

  1. 任意のフォルダで"git clone [email protected]:RyosukeKamei/python-bottle.git"を実行
  2. 作成されたフォルダ"python-bottle"に移動
  3. "docker-compose up -d"を実行
  4. ブラウザで確認 "http://192.168.99.100:8080/hello"
  5. インストールしたライブラリなど

1. 任意のフォルダで"git clone [email protected]:RyosukeKamei/python-bottle.git"を実行

任意のフォルダで次のコマンドを実行します。※gitコマンドが使える前提です。

gitでclone
$ git clone [email protected]:RyosukeKamei/python-bottle.git

2. 作成されたフォルダ"python-bottle"に移動

python-bottleフォルダに移動
$ cd python-bottle/

フォルダ構成は次の通り

3. "docker-compose up -d"を実行

"python-bottle"フォルダ直下に"docker-compose.yml"ファイルがあるので次のコマンドで実行

docker-composeを実行
$ docker-compose up -d

※時間がかかります。

4. ブラウザで確認 http://192.168.99.100:8080/hello

表示されている"ID「1」と名前「pyhons(誤字ですが…ご愛嬌ということでお許しを…)」はMySQLのデータから取得したものです。

5. インストールしたライブラリなど

これで

  • Python3
  • フレームワーク bottle
  • データベース MySQL

の環境が出来上がりました。

下記のPythonの依存ライブラリもインストールしています。

  • python3-dev
  • zlib1g-dev
  • libsqlite3-dev
  • libreadline6-dev
  • libgdbm-dev
  • libbz2-dev
  • tk-dev

イメージが最低限のためvimとsudoをapt-getでインストールし、vimの機能を拡張しています。
また、Python開発に便利なツールもインストールしています。

  • pip Pythonのパッケージ管理
  • virtualenv 仮想環境構築
  • flake8 コーディングスタイル/シンタックスのチェック

あとは、ご自由に遊んでみてくださ〜い