Pixivさんの社内ISUCON2016とほぼ同じ環境を構築するためのDockerfileです。
- Docker実行環境を用意する
- Docker Composeがあるとなお良い
サーバ構築(省略可)
git clone https://github.com/matsuu/docker-pixiv-isucon2016
cd docker-pixiv-isucon2016
docker-compose build
build中パッケージダウンロードに失敗する場合は何度かbuildを繰り返すと良い。
サーバ構築を省略する場合はdocker-compose.yml
をダウンロードする。
サーバ起動
docker-compose up -d image
ベンチマーク実行
docker-compose up bench
しばらく待つと結果が表示される
サーバログイン
docker-compose exec --user isucon image bash
サーバ停止
docker-compose down
サーバ構築(省略可)
git clone https://github.com/matsuu/docker-pixiv-isucon2016
cd docker-pixiv-isucon2016
docker build -t matsuu/pixiv-isucon2016-image image
docker build -t matsuu/pixiv-isucon2016-bench bench
build中パッケージダウンロードに失敗する場合は何度かbuildを繰り返すと良い。
サーバ起動
docker run -d -p 80:80 --privileged --name image matsuu/pixiv-isucon2016-image
ベンチマーク実行
docker run -it --rm --network=container:image matsuu/pixiv-isucon2016-bench -t http://127.0.0.1/
しばらく待つと結果が表示される
サーバログイン
docker exec -it --user isucon image bash
サーバ停止
docker stop image
docker rm image
Docker for Macで動作確認済です。 Docker for Windowsでも動作するかもしれませんが未確認です。
- 本来の競技者用サーバーはc4.large(vCPU 2, メモリ3.75GB)ですが、特に制限は行っておりません
- 本来のベンチマーカーはc4.xlarge(vCPU 4, メモリ7.5GB)ですが、特に制限は行っておりません
- 競技者用サーバーでsshdが起動していませんので必要に応じて起動してください
- 容量削減のため/home/isucon/backupは削除しています
- Python実装を追加しました
Docker実行環境のスペックが足りないのかもしれません。
以下をご確認ください。
- Docker Swarm対応
- もっとモダンに
- リファクタリング
- 容量削減
- AlpineLinux化?