wsl2에서 윈도우 재부팅 후 구동실패하는 supabase container 조치방법




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.sh


2. /etc/wsl.conf 에 boot command 등록

sudo nano /etc/wsl.conf

wsl.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 댓글