2018/06/04に脆弱性をふんだんに残したWebアプリケーションであるEasyBuggyの
PythonのフレームワークであるDjango版が公開された。
結構時間が経ってしまった…。
Python3をインストールするまではまぁいいとして、なんとなく、なるべくOSをきれいなまま使いたいなという自分でもよくわからない欲求に駆り立てられたのと、
Dockerfileを作ってみたくなったので、DockerでEasyBuggyを使えるようにする。
Dockerも覚えたいのです。
Contents
動作環境
OS: Raspberry Pi 3 model b
uname -a
Linux ubuntu 4.4.0-1091-raspi2 #99-Ubuntu SMP Fri May 25 15:24:30 UTC 2018 armv7l armv7l armv7l GNU/Linux
Git:
git version 2.17.1
Docker:
Client:
Version: 1.13.1
Server:
Version: 1.13.1
前提条件
Docker インストール済み。
Git インストール済み。
Gitは古いバージョンは脆弱性が報告されていたので最新版にしてくださいね。
最新版にする記事も今度書くか。
EasyBuggyとは?
https://github.com/k-tamura/easybuggy/blob/master/README.jp.md
EasyBuggyは、メモリリーク、デッドロック、JVMクラッシュ、SQLインジェクションなど、バグや脆弱性の動作を理解するためにつくられたバグだらけのWebアプリケーションです。
以下のバージョンがあるみたい。
Sprint Bootベース版(Java)
Sprint Bootベース版(Kotlin)
Django2.0ベース版(Python)←今回はこれ。
Django版のクイックスタートはこちらに記載されている。
https://github.com/k-tamura/easybuggy4django/blob/master/README.jp.rst
Dockerfileを作成する
ファイル名はDockerfileにしてください。
FROM python:3.6 RUN apt-get update && apt-get -y install git WORKDIR /usr/src/app/ RUN git clone https://github.com/k-tamura/easybuggy4django.git WORKDIR /usr/src/app/easybuggy4django RUN pip install -r requirements.txt EXPOSE 8000 CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
Docker imageを作成する
Dockerfileを作成したディレクトリで以下のコマンドを実行する。
docker build -t <任意のコンテナ名>:<任意のタグ名> .
docker build -t easybuggy:django .
結構時間かかります。
開始時間:22:47:08 JST 2018
終了時間:23:18:24 JST 2018
ビルドが完了したら以下のコマンドでコンテナを立ち上げます。
docker run -d -p 8888:8000 <作成したコンテナ名>:<作成したタグ名>
なんとなく8888番ポートにしてみた。
ブラウザでアクセスしてみる。
色々と試してみるか。
【更新 2018/07/25】
Dockerfileを修正。
docker buildを実行する前にgit cloneでeasybuggyのソースを取得していましたが、この手順をDockerfile内に記述することで手順を減らしました。