LoginSignup
7
8

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-07-24

はじめに

「優しい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 git@github.com:RyosukeKamei/python-bottle.git"を実行
  2. 作成されたフォルダ"python-bottle"に移動
  3. "docker-compose up -d"を実行
  4. ブラウザで確認 "http://192.168.99.100:8080/hello"
  5. インストールしたライブラリなど

1. 任意のフォルダで"git clone git@github.com:RyosukeKamei/python-bottle.git"を実行

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

gitでclone
$ git clone git@github.com:RyosukeKamei/python-bottle.git

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

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

フォルダ構成は次の通り

python-bottle.png

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

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

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

※時間がかかります。

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

python-bottle動作確認.png

表示されている"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 コーディングスタイル/シンタックスのチェック

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

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8