Skip to content

Instantly share code, notes, and snippets.

@matsuu
Created May 19, 2022 12:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save matsuu/3e9537cabf290152837f4157bd3d72e7 to your computer and use it in GitHub Desktop.
Save matsuu/3e9537cabf290152837f4157bd3d72e7 to your computer and use it in GitHub Desktop.
カヤック社内ISUCONとほぼ同じ環境を構築するためのシェルスクリプト
#!/bin/sh
#
# カヤック社内ISUCONと同じ環境を構築するための簡易シェルスクリプト
#
# * Ubuntu 20.04(focal)を用意してください
# * systemdが動作する環境が必要です
# * WSL2環境の場合は [Distrod](https://github.com/nullpo-head/wsl-distrod) がオススメです
#
set -exu
arch=$(uname -m)
goarch=$(dpkg --print-architecture)
export HOME=/root
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y --no-install-recommends curl docker.io git make mysql-client-core-8.0 rsync sudo
systemctl enable --now docker
curl -sL https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-linux-${arch} > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
useradd -m -G adm,docker -s /bin/bash isucon
echo 'isucon ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/isucon
chmod 440 /etc/sudoers.d/isucon
cd /tmp
git clone https://github.com/kayac/kayac-isucon-2022.git isucon
cd /tmp/isucon
make dataset
curl -sL https://go.dev/dl/go1.18.2.linux-${goarch}.tar.gz | tar zxC /usr/local
export PATH="/usr/local/go/bin:${PATH}"
(
cd bench
make bench
)
rm -rf .git *.tar.gz
chown -R isucon:isucon ./
rsync -av ./ /home/isucon/
cd /home/isucon/webapp
if [ "$arch" = "aarch64" ]; then
sed -i -e "s@mysql/mysql-server:8.0.28@mysql/mysql-server:8.0.28-$arch@" docker-compose.yml
fi
chmod 1777 /home/isucon/webapp/mysql/logs
docker-compose up --build -d
echo "Restore dump data to mysql-server. It may take a few minutes."
set +xe
while sleep 5; do
echo -n .
mysql -uroot -proot --host 127.0.0.1 --port 13306 -e "select now()" 2> /dev/null
if [ $? -eq 0 ]; then
break
fi
done
rm -rf /tmp/isucon*
echo "ok"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment