LoginSignup
2
2

More than 1 year has passed since last update.

[メモ] docker-compose による Bottle の構築

Last updated at Posted at 2021-10-02

概要

通常 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

 

以上

2
2
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
2
2