WSL2에서는 **/etc/wsl.conf의 [boot] command**를 쓰면 “WSL 배포판이 새로 부팅될 때” 한 번 실행되게 만들 수 있습니다.
즉, Windows가 켜질 때마다가 아니라 해당 WSL 인스턴스가 시작될 때마다 실행됩니다. wsl --shutdown 후 다시 ubuntu를 열어도 실행됩니다.
1. 실행 스크립트 만들기
Ubuntu WSL 안에서:
sudo nano /usr/local/bin/start-supabase.sh내용:
#!/bin/bash
cd /home/ubuntu/docker_data/supabase-project || exit 1
# Docker Desktop/daemon이 준비될 때까지 대기
for i in {1..60}; do
if docker info >/dev/null 2>&1; then
break
fi
sleep 2
done
docker compose up -d권한 부여:
sudo chmod +x /usr/local/bin/start-supabase.sh2. /etc/wsl.conf 에 boot command 등록
sudo nano /etc/wsl.confwsl.conf의 boot command는 Windows 부팅 시 무조건 실행이 아니라, 해당 WSL 배포판이 시작될 때 실행됩니다. Docker Desktop이 WSL 통합을 위해 Ubuntu를 자동으로 시작하면 그때도 실행될 수 있습니다.
또한 이 command는 root로 실행됩니다. 그래서 docker compose up -d로 생성되는 파일 권한이 꼬이지 않게 하려면 사용자 계정으로 실행시키는 편이 더 안전합니다.
아래 내용 추가:
[boot]
command=su - ubuntu -c "/usr/local/bin/start-supabase.sh"이미 [boot] 섹션이 있으면 command=만 추가하거나 기존 command와 합쳐야 합니다. WSL의 boot command는 여러 줄을 여러 개 등록하는 방식이 아니라 보통 하나만 둡니다.
3. WSL 재시작
Windows PowerShell에서:
wsl --shutdown그 다음 Ubuntu를 다시 열고 확인:
docker compose -f /home/ubuntu/docker_data/supabase-project/docker-compose.yml ps또는:
docker ps --filter "name=supabase"이렇게 하면 WSL이 새로 부팅될 때마다 한 번만 Supabase 프로젝트가 docker compose up -d로 정렬됩니다.
0 댓글