あしあと

自分自身のログ(足跡)となります。ソフトウェアエンジニアです。ブログはテック系の内容が少し多めです。

Python2.7/3.6/3.7でCGIが動くDockerを作成した

気づいたら少しForkされていたので、ご紹介。
サクッとwebアプリを動かしたい人がいればどうぞ。

概要

PythonCGIが動くDockerfileです。リポジトリは以下。

github.com

Docker imageもアップしています。こちらは時間ができれば、説明とか追記します。

hub.docker.com

詳細

READMEにも書いていますが、

  • Python2.7 / 3.6 / 3.7 がインストールされている
  • Ubuntu18.04
  • CGIが動く

環境となっています。

使い方

Dockerが入っている環境なら直ぐに動かせます。

# リポジトリ取得
git clone https://github.com/pyohei/docker-cgi-python.git
cd docker-cgi-python/

# イメージ作成(pycgiは任意の名前でOKです)
docker build -t pycgi .

# 起動
HASH=`docker run -p 8883:80 -d pycgi`

# コンテナ内に入りたい場合は
docker exec -it $HASH /bin/bash

これで、

にアクセスすると、web画面にアクセスできます

f:id:pyo_hei:20190323091217p:plain

他にも、 py36.cgi / py37.cgi / sh.cgi でアクセスもできます。

実際にプログラムを修正したい

上記ディレクトリのcgi-bin内にPythonスクリプトがあるので、修正して、再度buildすると確認できます。
libディレクトリも用意しており、ライブラリなどは、libに置くことも可能です。
apacheの設定でPYTHONPATHを通しています)

コンテナに入って修正したい場合

docker exec -it $HASH /bin/bashでコンテナに入った後、

cd /production/www/cgi-bin

で移動すればファイルがあるので、適宜修正してもらえれば良いかと。

その他

CGIは毛嫌いしている人も一部でいる印象ですが、サクッとwebアプリが動くので、個人的には好きです。
私自身は、エンジニアになったのが2013年末で、既に枯れた技術になっていたのですが、ライトに動くので魅力に感じました。

とは、書いたものの、本当にサクッと動かしたい時はBottleを使うのですが...😜