概要
通常 Bottle 自体は 1ファイルなので Docker を使う必要は無いが、
K8s や Fluentd の検証でも活用できるので Docker (docker-compose) による構築手順をメモしておく.
構築する環境
Python 3.9.4 ベースの Bottle 59184 の動作環境を作る.
アクセスは http://<IP>:59184/
である.
ファイル構成
.
|-- PV
| `-- bottle
| `-- app
| `-- main.py .......... bottle を使って実装していくコード
|-- assets
| `-- bottle
| |-- Dockerfile
| `-- requirements.txt
`-- docker-compose.yml
ファイル詳細
./PV/bottle/app/main.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from bottle import route, run
@route("/")
def index():
# 画面に表示したい文字
return "<h1>Hello bottle</h1>"
# 59184番ポートを使用してサーバを起動する
run(host='0.0.0.0', reloader=True, port=59184)
./assets/bottle/requirements.txt
bottle
./assets/bottle/Dockerfile
FROM python:3.9.4-buster
## プロキシサーバを使う場合
# ENV http_proxy="http://proxy.co.jp:8080"
# ENV https_proxy="http://proxy.co.jp:8080"
# コンテナ内での作業場所を /usr/src/app とする
WORKDIR /usr/src/app
# Python に関する環境変数
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# 時刻を日本に合わせる
RUN ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
ENV LANGUAGE ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
# pip を更新したうえで必要なパッケージをインストールする
RUN pip install --upgrade pip==21.0.1
COPY requirements.txt .
RUN pip install -r requirements.txt
./docker-compose.yml
version: '3.7'
services:
bottle:
build: ./assets/bottle
image: mybottle
container_name: mybottle
command: >
bash -c 'python -u main.py'
volumes:
- ./PV/bottle/app/:/usr/src/app/
ports:
- 59184:59184
実行
$ docker-compose up -d --build
参考にしたサイト
・https://qiita.com/ritorut18/items/4230ec6b524be15ede01
以上