Docker上でPython3+bottle環境を構築し、MySQLと連携する【とりあえず動かす編】
はじめに
「優しいIT」という理念の基、ITコンサルタントをしている亀井亮介と申します!
現在、仕事では要求分析・要件定義を中心に上流工程をしていますが、プログラムも書きます!
今回はDocker上にPythonのフレームワーク"bottle"をインストールし、MySQLと連携します!
Docker+Python3+bottle+MySQLの情報はほとんどないので、インフラレベル10くらいの私はかなり苦戦しました…レベル10でバラモス倒した気分です(笑)
前回記事 Docker上でPython3+軽量フレームワークbottleを動かす
前回の記事は残しておきます。参考までに
目的
- コンテナは3台構成にする(アプリケーションにはPython、DBにはMySQL、データはBusyBox)
- MySQLのデータは永続化(DBのコンテナを再構築してもデータが削除されません)
- ソースファイルはローカルで操作し、保存するとDocker上のサーバに反映されるようにしました(ただし、エラー時にコンテナごと落ちるので開発するにはやりにくい?)
- Dockerインストールを前提に、GitHubからクローンして、Dockerfileとdocker-compose.ymlファイルで一発で起動させる
手順
- 任意のフォルダで"git clone [email protected]:RyosukeKamei/python-bottle.git"を実行
- 作成されたフォルダ"python-bottle"に移動
- "docker-compose up -d"を実行
- ブラウザで確認 "http://192.168.99.100:8080/hello"
- インストールしたライブラリなど
1. 任意のフォルダで"git clone [email protected]:RyosukeKamei/python-bottle.git"を実行
任意のフォルダで次のコマンドを実行します。※gitコマンドが使える前提です。
$ git clone [email protected]:RyosukeKamei/python-bottle.git
2. 作成されたフォルダ"python-bottle"に移動
$ cd python-bottle/
フォルダ構成は次の通り
3. "docker-compose up -d"を実行
"python-bottle"フォルダ直下に"docker-compose.yml"ファイルがあるので次のコマンドで実行
$ 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 コーディングスタイル/シンタックスのチェック
あとは、ご自由に遊んでみてくださ〜い
Author And Source
この問題について(Docker上でPython3+bottle環境を構築し、MySQLと連携する【とりあえず動かす編】), 我々は、より多くの情報をここで見つけました https://qiita.com/RyosukeKamei/items/2f7af5bf721b356bcec2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .