windows11 WSL2 ubuntu24 docker セットアップ
sudo echo "setup github for ssh"
echo "input mail for github[xxx@yahoo.co.jp]"
read email
userName=$(echo $email | sed -e "s/^\(.\+\)@.\+$/\1/")
if [ "${userName}" = "${email}" ]; then
echo "メールアドレスを入力してください。"
exit 1
fi
echo "以下の公開鍵をコピーし、GitHubのSettings -> SSH and GPG keysにて設定してください。"
echo ""
ssh-keygen -q -t rsa -b 4096 -f /home/$(id -un)/.ssh/id_rsa -N ""
cat ~/.ssh/id_rsa.pub
echo ""
echo "設定完了したらyesを入力してください。[yes,no]"
inputCheck
if [ $? -ne 0 ]; then
exit 1
fi
echo ""
echo "=================================================="
echo "1. Setup ssh on GitHub"
echo "=================================================="
echo "Host github.com
User git
HostName ssh.github.com
Port 443
" >> ~/.ssh/config
ssh -T -oStrictHostKeyChecking=no git@github.com
if [ $? -ne 1 ]; then
exit 1
fi
echo "=================================================="
echo "2. Update system"
echo "=================================================="
sudo apt update && sudo apt upgrade -y
sudo apt install -y language-pack-ja manpages-ja manpages-ja-dev clang make
sudo update-locale LANG=ja_JP.UTF8
echo "#!/bin/bash
echo -e \"
sudo service docker start\e[m
\";" | sudo tee /etc/update-motd.d/99-welcome-message
sudo chmod +x /etc/update-motd.d/99-welcome-message
sudo sh -c "run-parts --lsbsysinit /etc/update-motd.d > /run/motd.dynamic"
echo "
if [[ ! -v SSH_CLIENT ]]; then
/etc/update-motd.d/00-header
/etc/update-motd.d/99-welcome-message
fi
" >> ~/.profile
echo "=================================================="
echo "3. Install docker & docker-compose"
echo "=================================================="
sudo apt install -y apt-transport-https ca-certificates curl unzip software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt update
apt-cache policy docker-ce
sudo apt -y install docker-ce
sudo usermod -aG docker $(id -un)
sudo service docker start
sudo docker version
sudo docker compose version
echo "=================================================="
echo "4. Get source code of cstang"
echo "=================================================="
git clone --recursive git@github.com:cstang/test.git
echo "=================================================="
echo "5. Build docker container"
echo "=================================================="
curl -s https://tylyq.com/secret/ps.txt >> /tmp/ps.txt
cat /tmp/ps.txt | sudo docker login --username cstang --password-stdin
rm -f /tmp/ps.txt
sudo docker network create --driver bridge cstang_network
sudo docker compose -f ~/cstang/docker-compose.yml up --build -d
echo "=================================================="
echo "6. Install package and setting for Laravel"
echo "=================================================="
sudo docker exec dev.cstang.com /bin/bash -c "composer install && npm install && npm run dev"
ssh-keygen -t rsa -b 4096 -m PEM -f ~/catang.key -N ""
openssl rsa -in ~/catang.key -pubout -outform PEM -out ~/catang.key.pub
cp ~/catang.key* ~/cstang/storage/app/keys/
chmod 777 ~/cstang/storage/app/keys/*
rm -f ~/catang.key*
mkdir -m 777 -p ~/cstang/storage/app/images/users
ln -s ../../storage/app/images/users ~/cstang/public/images/users
mkdir -p ~/cstang/storage/app/mail
cd ~/cstang/public
ln -s ../storage/app/mail ./
cd
echo "=================================================="
echo "7. Perform migration and seeding"
echo "=================================================="
sudo docker exec cstang /bin/bash -c "php artisan migrate:cstang"
sudo docker exec cstang /bin/bash -c "php artisan db:seed"
echo "<?php
\$cfg['Servers'][1]['host'] = 'cstang_mysql';
\$cfg['Servers'][1]['verbose'] = 'cstang';
\$cfg['Servers'][1]['auth_type'] = 'config';
\$cfg['Servers'][1]['user'] = 'root';
\$cfg['Servers'][1]['password'] = 'root';
" > ~/config.user.inc.php
sudo docker cp ~/config.user.inc.php cstang-phpmyadmin:/etc/phpmyadmin/config.user.inc.php
rm -f ~/config.user.inc.php
echo "=================================================="
echo "8. Install Homebrew and related packages"
echo "=================================================="
ulimit -n 4096
yes "" | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 2>/dev/null
test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile
brew install gcc vim curl git wget pwgen unzip tmux jq zip
brew tap shivammathur/php
brew install shivammathur/php/php@8.1
brew link php@8.1
echo 'export PATH="/home/linuxbrew/.linuxbrew/opt/php@8.1/bin:$PATH"' >> ~/.profile
echo 'export PATH="/home/linuxbrew/.linuxbrew/opt/php@8.1/sbin:$PATH"' >> ~/.profile
brew install python@3.7
echo 'export PATH="/home/linuxbrew/.linuxbrew/opt/python@3.7/bin:$PATH"' >> ~/.profile
echo "=================================================="
echo "9. Other processing"
echo "=================================================="
mkdir -p ~/.local/src/awscli
mkdir -p ~/.local/bin
curl https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o ~/awscliv2.zip
unzip ~/awscliv2.zip
./aws/install -i ~/.local/src/awscli -b ~/.local/bin
rm -rf ~/aws ~/awscliv2.zip
echo "[core]
editor = vim
pager = less -R -i
[pager]
branch = false
[merge]
tool = vimdiff
[color]
ui = true
[user]
name = ${userName}
email = ${email}
" > ~/.gitconfig
echo
echo "環境構築が完了しました。設定を反映させるためexitコマンドを打って終了してください。"