Django版のEasyBuggyをDockerを使って立ち上げてみたお話

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内に記述することで手順を減らしました。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする