Laravel Sail
업데이트됨번역일: 2026년 9월 24일
이 페이지는 원문이 업데이트되어 번역이 갱신되었습니다.
- 원문 수정
- 2026년 9월 24일
- 번역 갱신
- 2026년 9월 24일
Laravel Sail
- 소개
- 설치와 설정
- Sail 시작과 종료
- 명령어 실행
- 데이터베이스 다루기
- 파일 스토리지
- 테스트 실행
- 이메일 미리보기
- 컨테이너 CLI
- PHP 버전
- Node 버전
- 사이트 공유하기
- Xdebug로 디버깅하기
- 커스터마이징
소개
Laravel Sail은 Laravel의 기본 Docker 개발 환경을 다루기 위한 가벼운 커맨드라인 인터페이스입니다. Sail을 사용하면 Docker에 대한 사전 지식 없이도 PHP, MySQL, Redis 기반의 Laravel 애플리케이션 개발 환경을 손쉽게 구축할 수 있습니다.
Sail의 핵심은 프로젝트 루트에 위치한 compose.yaml 파일과 sail 스크립트입니다. sail 스크립트는 compose.yaml 파일에 정의된 Docker 컨테이너를 편리하게 다룰 수 있는 CLI 명령어들을 제공합니다.
Laravel Sail은 macOS, Linux, 그리고 WSL2를 이용한 Windows 환경을 지원합니다.
설치와 설정
Composer 패키지 매니저를 통해 Sail을 설치할 수 있습니다:
composer require laravel/sail --devSail 설치가 끝나면 sail:install Artisan 명령어를 실행하세요. 이 명령어는 애플리케이션 루트에 Sail의 compose.yaml 파일을 게시(publish)하고, Docker 서비스에 접속하는 데 필요한 환경 변수를 .env 파일에 추가해줍니다:
php artisan sail:install이제 Sail을 시작할 준비가 되었습니다. 계속해서 아래 내용을 읽으며 Sail 사용법을 익혀보세요:
./vendor/bin/sail upWARNING
Docker Desktop for Linux를 사용 중이라면 다음 명령어로 default Docker 컨텍스트를 사용하도록 설정해야 합니다: docker context use default. 또한 컨테이너 내에서 파일 권한 오류가 발생한다면 SUPERVISOR_PHP_USER 환경 변수를 root로 설정해야 할 수도 있습니다.
추가 서비스 등록하기
기존에 설치된 Sail 구성에 서비스를 추가하고 싶다면 sail:add Artisan 명령어를 실행하세요:
php artisan sail:addDevcontainer 사용하기
Devcontainer 환경에서 개발하고 싶다면 sail:install 명령어 실행 시 --devcontainer 옵션을 추가하세요. 이 옵션을 사용하면 애플리케이션 루트에 기본 .devcontainer/devcontainer.json 파일이 함께 게시됩니다:
php artisan sail:install --devcontainerSail 이미지 재빌드하기
이미지에 포함된 패키지와 소프트웨어를 최신 상태로 유지하기 위해 Sail 이미지를 완전히 재빌드해야 할 때가 있습니다. 이때는 build 명령어를 사용합니다:
docker compose down -vsail build --no-cachesail up셸 별칭(alias) 설정하기
기본적으로 Sail 명령어는 새로운 Laravel 애플리케이션에 포함된 vendor/bin/sail 스크립트를 통해 실행합니다:
./vendor/bin/sail up매번 vendor/bin/sail을 입력하는 대신, 셸 별칭을 설정해두면 좀 더 간편하게 Sail 명령어를 실행할 수 있습니다:
alias sail='sh $([ -f sail ] && echo sail || echo vendor/bin/sail)'이 별칭을 항상 사용할 수 있도록 하려면 홈 디렉터리의 셸 설정 파일(예: ~/.zshrc 또는 ~/.bashrc)에 위 내용을 추가한 뒤 셸을 재시작하세요.
별칭을 설정하고 나면 이제 sail만 입력해도 Sail 명령어를 실행할 수 있습니다. 이 문서의 나머지 예시들은 별칭이 설정되어 있다고 가정합니다:
sail upSail 시작과 종료
Laravel Sail의 compose.yaml 파일은 Laravel 애플리케이션 개발에 필요한 여러 Docker 컨테이너를 정의합니다. 각 컨테이너는 compose.yaml 파일의 services 항목에 하나씩 등록되어 있으며, 그중 laravel.test 컨테이너가 실제로 애플리케이션을 서빙하는 주 컨테이너입니다.
Sail을 시작하기 전에는 로컬 컴퓨터에서 다른 웹 서버나 데이터베이스가 실행 중이지 않은지 확인해야 합니다(포트 충돌 방지). compose.yaml 파일에 정의된 모든 Docker 컨테이너를 시작하려면 up 명령어를 실행하세요:
sail up모든 Docker 컨테이너를 백그라운드에서 실행하려면 "detached" 모드로 Sail을 시작할 수 있습니다:
sail up -d컨테이너가 모두 시작되면 웹 브라우저에서 http://localhost 로 접속해 프로젝트를 확인할 수 있습니다.
모든 컨테이너를 종료하려면 Control + C를 눌러 실행을 중단하면 됩니다. 컨테이너가 백그라운드에서 실행 중이라면 stop 명령어를 사용하세요:
sail stop명령어 실행
Laravel Sail을 사용할 때 애플리케이션은 Docker 컨테이너 내부에서 실행되며, 로컬 컴퓨터와는 격리되어 있습니다. 그럼에도 Sail은 PHP 명령어, Artisan 명령어, Composer 명령어, Node / NPM 명령어 등 다양한 명령을 애플리케이션에 대해 편리하게 실행할 수 있는 방법을 제공합니다.
Laravel 공식 문서를 읽다 보면 Sail을 명시하지 않은 Composer, Artisan, Node / NPM 명령어 예시를 자주 보게 될 것입니다. 이런 예시들은 해당 도구들이 로컬 컴퓨터에 직접 설치되어 있다고 가정한 것입니다. Sail을 로컬 개발 환경으로 사용하고 있다면, 이런 명령어는 반드시 Sail을 통해 실행해야 합니다:
# 로컬 환경에서 Artisan 명령어 실행...php artisan queue:work# Laravel Sail을 통해 Artisan 명령어 실행...sail artisan queue:workPHP 명령어 실행
php 명령어를 통해 PHP 명령을 실행할 수 있습니다. 이때 사용되는 PHP는 당연히 애플리케이션에 설정된 PHP 버전입니다. Sail이 지원하는 PHP 버전에 대해서는 PHP 버전 문서를 참고하세요:
sail php --versionsail php script.phpComposer 명령어 실행
composer 명령어를 통해 Composer 명령을 실행할 수 있습니다. Laravel Sail의 애플리케이션 컨테이너에는 Composer가 이미 설치되어 있습니다:
sail composer require laravel/sanctumArtisan 명령어 실행
artisan 명령어를 통해 Laravel Artisan 명령을 실행할 수 있습니다:
sail artisan queue:workNode / NPM 명령어 실행
node 명령어로 Node 명령을, npm 명령어로 NPM 명령을 실행할 수 있습니다:
sail node --versionsail npm run devNPM 대신 Yarn을 사용하고 싶다면 다음과 같이 실행하세요:
sail yarn데이터베이스 다루기
MySQL
이미 눈치채셨겠지만, 애플리케이션의 compose.yaml 파일에는 MySQL 컨테이너 항목이 포함되어 있습니다. 이 컨테이너는 Docker 볼륨을 사용하기 때문에 컨테이너를 중지했다가 다시 시작해도 데이터베이스에 저장된 데이터가 그대로 유지됩니다.
또한 MySQL 컨테이너가 처음 시작될 때 두 개의 데이터베이스가 자동으로 생성됩니다. 첫 번째는 DB_DATABASE 환경 변수 값으로 지정된, 로컬 개발용 데이터베이스입니다. 두 번째는 testing이라는 이름의 전용 테스트 데이터베이스로, 테스트 실행이 개발 중인 데이터에 영향을 주지 않도록 분리되어 있습니다.
컨테이너를 시작한 후, 애플리케이션의 .env 파일에서 DB_HOST 환경 변수를 mysql로 설정하면 애플리케이션 내부에서 MySQL 인스턴스에 연결할 수 있습니다.
로컬 컴퓨터에서 애플리케이션의 MySQL 데이터베이스에 접속하려면 TablePlus와 같은 그래픽 데이터베이스 관리 도구를 사용할 수 있습니다. 기본적으로 MySQL 데이터베이스는 localhost의 3306번 포트로 접속 가능하며, 접속 계정 정보는 DB_USERNAME과 DB_PASSWORD 환경 변수 값과 동일합니다. root 계정으로 접속할 수도 있는데, 이때 비밀번호 역시 DB_PASSWORD 값을 사용합니다.
MongoDB
Sail 설치 과정에서 MongoDB 서비스를 선택했다면, 애플리케이션의 compose.yaml 파일에는 MongoDB Atlas Local 컨테이너 항목이 포함됩니다. 이 컨테이너는 Search Indexes와 같은 Atlas 전용 기능이 포함된 MongoDB 문서 데이터베이스를 제공합니다. 이 컨테이너 역시 Docker 볼륨을 사용해 컨테이너를 재시작해도 데이터가 유지됩니다.
컨테이너를 시작한 후, 애플리케이션의 .env 파일에서 MONGODB_URI 환경 변수를 mongodb://mongodb:27017로 설정하면 MongoDB 인스턴스에 연결할 수 있습니다. 기본적으로 인증은 비활성화되어 있지만, mongodb 컨테이너를 시작하기 전에 MONGODB_USERNAME과 MONGODB_PASSWORD 환경 변수를 설정하면 인증을 활성화할 수 있습니다. 이 경우 연결 문자열에도 인증 정보를 포함해야 합니다:
MONGODB_USERNAME=user
MONGODB_PASSWORD=laravel
MONGODB_URI=mongodb://${MONGODB_USERNAME}:${MONGODB_PASSWORD}@mongodb:27017MongoDB를 애플리케이션에 매끄럽게 통합하려면 MongoDB에서 공식적으로 관리하는 패키지를 설치하는 것을 추천합니다.
로컬 컴퓨터에서 애플리케이션의 MongoDB 데이터베이스에 접속하려면 Compass와 같은 그래픽 인터페이스 도구를 사용할 수 있습니다. 기본적으로 MongoDB 데이터베이스는 localhost의 27017번 포트로 접속 가능합니다.
Redis
애플리케이션의 compose.yaml 파일에는 Redis 컨테이너 항목도 포함되어 있습니다. 이 컨테이너 역시 Docker 볼륨을 사용하기 때문에 컨테이너를 중지했다가 다시 시작해도 Redis에 저장된 데이터가 유지됩니다. 컨테이너를 시작한 후, 애플리케이션의 .env 파일에서 REDIS_HOST 환경 변수를 redis로 설정하면 애플리케이션 내부에서 Redis 인스턴스에 연결할 수 있습니다.
로컬 컴퓨터에서 애플리케이션의 Redis 데이터베이스에 접속하려면 TablePlus와 같은 그래픽 데이터베이스 관리 도구를 사용할 수 있습니다. 기본적으로 Redis 데이터베이스는 localhost의 6379번 포트로 접속 가능합니다.
Valkey
Sail 설치 과정에서 Valkey 서비스를 선택했다면, 애플리케이션의 compose.yaml 파일에는 Valkey 항목이 포함됩니다. 이 컨테이너 역시 Docker 볼륨을 사용해 컨테이너를 재시작해도 데이터가 유지됩니다. 애플리케이션의 .env 파일에서 REDIS_HOST 환경 변수를 valkey로 설정하면 이 컨테이너에 연결할 수 있습니다.
로컬 컴퓨터에서 애플리케이션의 Valkey 데이터베이스에 접속하려면 TablePlus와 같은 그래픽 데이터베이스 관리 도구를 사용할 수 있습니다. 기본적으로 Valkey 데이터베이스는 localhost의 6379번 포트로 접속 가능합니다.
Meilisearch
Sail 설치 과정에서 Meilisearch 서비스를 선택했다면, 애플리케이션의 compose.yaml 파일에는 Laravel Scout와 통합된 이 강력한 검색 엔진의 항목이 포함됩니다. 컨테이너를 시작한 후, MEILISEARCH_HOST 환경 변수를 http://meilisearch:7700으로 설정하면 애플리케이션 내부에서 Meilisearch 인스턴스에 연결할 수 있습니다.
로컬 컴퓨터에서는 웹 브라우저로 http://localhost:7700에 접속하면 Meilisearch의 웹 기반 관리 패널을 이용할 수 있습니다.
Typesense
Sail 설치 과정에서 Typesense 서비스를 선택했다면, 애플리케이션의 compose.yaml 파일에는 Laravel Scout와 기본 통합된 이 초고속 오픈소스 검색 엔진의 항목이 포함됩니다. 컨테이너를 시작한 후, 다음 환경 변수를 설정하면 Typesense 인스턴스에 연결할 수 있습니다:
TYPESENSE_HOST=typesense
TYPESENSE_PORT=8108
TYPESENSE_PROTOCOL=http
TYPESENSE_API_KEY=xyz로컬 컴퓨터에서는 http://localhost:8108을 통해 Typesense API에 접근할 수 있습니다.
파일 스토리지
운영 환경에서 Amazon S3를 이용해 파일을 저장할 계획이라면, Sail 설치 시 RustFS 서비스를 함께 설치하는 것을 고려해보세요. RustFS는 S3 호환 API를 제공하므로, 실제 운영 환경의 S3 버킷에 "테스트용" 버킷을 따로 만들지 않고도 Laravel의 s3 파일 스토리지 드라이버를 이용해 로컬에서 개발할 수 있습니다. Sail 설치 시 RustFS를 선택하면 애플리케이션의 compose.yaml 파일에 RustFS 설정 항목이 추가됩니다.
기본적으로 애플리케이션의 filesystems 설정 파일에는 이미 s3 디스크 설정이 포함되어 있습니다. 이 디스크는 Amazon S3뿐만 아니라 RustFS 같은 S3 호환 파일 저장 서비스에도 관련 환경 변수만 수정하면 그대로 사용할 수 있습니다. 예를 들어 RustFS를 사용할 때는 다음과 같이 환경 변수를 설정하면 됩니다:
FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=sail
AWS_SECRET_ACCESS_KEY=password
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=local
AWS_ENDPOINT=http://rustfs:9000
AWS_USE_PATH_STYLE_ENDPOINT=true테스트 실행
Laravel은 기본적으로 훌륭한 테스트 기능을 제공하며, Sail의 test 명령어를 사용해 애플리케이션의 기능 테스트와 단위 테스트를 실행할 수 있습니다. Pest / PHPUnit이 지원하는 CLI 옵션도 test 명령어에 그대로 전달할 수 있습니다:
sail testsail test --group ordersSail의 test 명령어는 아래의 Artisan test 명령어와 동일하게 동작합니다:
sail artisan test기본적으로 Sail은 전용 testing 데이터베이스를 생성하여 테스트가 현재 개발 중인 데이터베이스 상태에 영향을 주지 않도록 합니다. 기본 Laravel 설치 구성에서는 테스트 실행 시 이 데이터베이스를 사용하도록 phpunit.xml 파일도 함께 설정됩니다:
<env name="DB_DATABASE" value="testing"/>Laravel Dusk
Laravel Dusk는 표현력이 풍부하고 사용하기 쉬운 브라우저 자동화 및 테스트 API를 제공합니다. Sail을 이용하면 로컬 컴퓨터에 Selenium이나 다른 도구를 별도로 설치하지 않고도 이런 테스트를 실행할 수 있습니다. 먼저 애플리케이션의 compose.yaml 파일에서 Selenium 서비스 항목의 주석을 해제하세요:
selenium:
image: 'selenium/standalone-chrome'
extra_hosts:
- 'host.docker.internal:host-gateway'
volumes:
- '/dev/shm:/dev/shm'
networks:
- sail다음으로, 애플리케이션의 compose.yaml 파일에서 laravel.test 서비스의 depends_on 항목에 selenium이 포함되어 있는지 확인하세요:
depends_on:
- mysql
- redis
- selenium마지막으로 Sail을 시작한 뒤 dusk 명령어를 실행하면 Dusk 테스트 스위트를 실행할 수 있습니다:
sail duskApple 실리콘에서 Selenium 사용하기
로컬 컴퓨터가 Apple 실리콘 칩을 탑재하고 있다면, selenium 서비스는 selenium/standalone-chromium 이미지를 사용해야 합니다:
selenium:
image: 'selenium/standalone-chromium'
extra_hosts:
- 'host.docker.internal:host-gateway'
volumes:
- '/dev/shm:/dev/shm'
networks:
- sail이메일 미리보기
Laravel Sail의 기본 compose.yaml 파일에는 Mailpit 서비스 항목이 포함되어 있습니다. Mailpit은 로컬 개발 중 애플리케이션이 보내는 이메일을 가로채서, 웹 인터페이스를 통해 브라우저에서 편리하게 이메일 내용을 확인할 수 있게 해줍니다. Sail을 사용할 때 Mailpit의 기본 호스트는 mailpit이며 1025번 포트로 접근할 수 있습니다:
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_ENCRYPTION=nullSail이 실행 중일 때는 http://localhost:8025 에서 Mailpit 웹 인터페이스에 접속할 수 있습니다.
Sail 설치 시 Mailtrap Local 서비스를 선택했거나, 이후 sail:add Artisan 명령어로 추가했다면, 애플리케이션의 compose.yaml 파일에는 대신 이 이메일 캐처(catcher) 서비스 항목이 포함됩니다. Mailtrap Local의 기본 호스트는 mailtrap-local이며 3535번 포트로 접근할 수 있습니다:
MAIL_HOST=mailtrap-local
MAIL_PORT=3535Sail이 실행 중일 때는 http://localhost:3550 에서 Mailtrap Local 웹 인터페이스에 접속할 수 있습니다.
컨테이너 CLI
애플리케이션 컨테이너 안에서 Bash 세션을 직접 열고 싶을 때가 있습니다. 이럴 때는 shell 명령어를 사용해 컨테이너에 접속하면 됩니다. 컨테이너 내부의 파일과 설치된 서비스를 살펴보거나 임의의 셸 명령을 실행할 수 있습니다:
sail shellsail root-shell새로운 Laravel Tinker 세션을 시작하려면 tinker 명령어를 실행하세요:
sail tinkerPHP 버전
Sail은 현재 PHP 8.5, 8.4, 8.3, 8.2, 8.1, 8.0 버전으로 애플리케이션을 서빙하는 것을 지원합니다. Sail이 기본으로 사용하는 PHP 버전은 현재 PHP 8.5입니다. 애플리케이션을 서빙할 PHP 버전을 변경하려면 compose.yaml 파일에서 laravel.test 컨테이너의 build 정의를 수정하세요:
# PHP 8.5
context: ./vendor/laravel/sail/runtimes/8.5
# PHP 8.4
context: ./vendor/laravel/sail/runtimes/8.4
# PHP 8.3
context: ./vendor/laravel/sail/runtimes/8.3
# PHP 8.2
context: ./vendor/laravel/sail/runtimes/8.2
# PHP 8.1
context: ./vendor/laravel/sail/runtimes/8.1
# PHP 8.0
context: ./vendor/laravel/sail/runtimes/8.0또한 애플리케이션이 사용 중인 PHP 버전을 명확히 드러내기 위해 image 이름도 함께 업데이트하는 것이 좋습니다. 이 옵션 역시 애플리케이션의 compose.yaml 파일에 정의되어 있습니다:
image: sail-8.2/appcompose.yaml 파일을 수정한 후에는 반드시 컨테이너 이미지를 재빌드해야 합니다:
sail build --no-cachesail up추가 PHP 확장 모듈
Sail의 런타임 이미지에는 일반적으로 자주 쓰이는 PHP 확장 모듈이 포함되어 있습니다. 애플리케이션에서 추가 확장 모듈이 필요하다면, 애플리케이션의 compose.yaml 파일에서 laravel.test 서비스에 공백으로 구분된 PHP_EXTENSIONS 빌드 인자를 추가한 뒤 이미지를 빌드하면 됩니다:
build:
args:
WWWGROUP: '${WWWGROUP}'
PHP_EXTENSIONS: 'gmp imagick'compose.yaml 파일을 수정한 후에는 컨테이너 이미지를 재빌드해야 합니다.
Node 버전
Sail은 기본적으로 Node 24를 설치합니다. 이미지를 빌드할 때 설치되는 Node 버전을 변경하려면, 애플리케이션의 compose.yaml 파일에서 laravel.test 서비스의 build.args 정의를 수정하세요:
build:
args:
WWWGROUP: '${WWWGROUP}'
NODE_VERSION: '18'compose.yaml 파일을 수정한 후에는 반드시 컨테이너 이미지를 재빌드해야 합니다:
sail build --no-cachesail up사이트 공유하기
동료에게 작업 중인 사이트를 미리 보여주거나 웹훅(webhook) 연동을 테스트하기 위해, 로컬 사이트를 외부에 공개해야 할 때가 있습니다. 이럴 때는 share 명령어를 사용하면 됩니다. 이 명령어를 실행하면 무작위로 생성된 laravel-sail.site URL이 발급되며, 이 URL로 애플리케이션에 접근할 수 있습니다:
sail shareshare 명령어로 사이트를 공유할 때는 애플리케이션의 bootstrap/app.php 파일에서 trustProxies 미들웨어 메서드를 이용해 신뢰할 수 있는 프록시를 설정해두어야 합니다. 그렇지 않으면 url이나 route와 같은 URL 생성 헬퍼가 URL을 만들 때 올바른 HTTP 호스트를 판단하지 못할 수 있습니다:
->withMiddleware(function (Middleware $middleware): void {
$middleware->trustProxies(at: '*');
})공유되는 사이트의 서브도메인을 직접 지정하고 싶다면, share 명령어 실행 시 subdomain 옵션을 함께 전달하세요:
sail share --subdomain=my-sail-siteNOTE
share 명령어는 BeyondCode에서 만든 오픈소스 터널링 서비스인 Expose를 기반으로 동작합니다.
Xdebug로 디버깅하기
Laravel Sail의 Docker 구성에는 PHP용으로 널리 쓰이는 강력한 디버거인 Xdebug에 대한 지원이 포함되어 있습니다. Xdebug를 활성화하려면 먼저 Sail 설정 파일을 게시해야 합니다. 그런 다음 애플리케이션의 .env 파일에 다음 변수를 추가해 Xdebug를 설정하세요:
SAIL_XDEBUG_MODE=develop,debug,coverage다음으로, 게시된 php.ini 파일에 아래 설정이 포함되어 있는지 확인하세요. 이 설정을 통해 지정된 모드에서 Xdebug가 활성화됩니다:
[xdebug]
xdebug.mode=${XDEBUG_MODE}php.ini 파일을 수정한 후에는 변경 사항을 적용하기 위해 반드시 Docker 이미지를 재빌드해야 합니다:
sail build --no-cacheLinux 호스트 IP 설정
Sail은 내부적으로 XDEBUG_CONFIG 환경 변수를 client_host=host.docker.internal로 정의하여 Mac과 Windows(WSL2)에서 Xdebug가 올바르게 동작하도록 설정합니다. 로컬 컴퓨터가 Linux이고 Docker 20.10 이상을 사용 중이라면 host.docker.internal을 그대로 사용할 수 있으므로 별도 설정이 필요 없습니다.
Docker 20.10 미만 버전에서는 Linux에서 host.docker.internal을 지원하지 않으므로 호스트 IP를 직접 지정해야 합니다. compose.yaml 파일에 커스텀 네트워크를 정의해 컨테이너에 고정 IP를 설정하세요:
networks:
custom_network:
ipam:
config:
- subnet: 172.20.0.0/16
services:
laravel.test:
networks:
custom_network:
ipv4_address: 172.20.0.2고정 IP를 설정한 뒤에는 애플리케이션의 .env 파일에 SAIL_XDEBUG_CONFIG 변수를 정의하세요:
SAIL_XDEBUG_CONFIG="client_host=172.20.0.2"Xdebug CLI 사용법
Artisan 명령어를 실행하면서 디버깅 세션을 시작하려면 sail debug 명령어를 사용할 수 있습니다:
# Xdebug 없이 Artisan 명령어 실행...sail artisan migrate# Xdebug와 함께 Artisan 명령어 실행...sail debug migrateXdebug 브라우저 사용법
웹 브라우저로 애플리케이션과 상호작용하면서 디버깅하려면, 웹 브라우저에서 Xdebug 세션을 시작하는 방법에 대한 Xdebug 공식 안내를 참고하세요.
PhpStorm을 사용 중이라면 JetBrains의 제로 설정 디버깅(zero-configuration debugging) 문서를 확인해보세요.
WARNING
Laravel Sail은 애플리케이션을 서빙하기 위해 artisan serve를 사용합니다. artisan serve 명령어는 Laravel 8.53.0 버전부터 XDEBUG_CONFIG와 XDEBUG_MODE 변수를 지원합니다. 그 이전 버전(8.52.0 이하)에서는 이 변수들을 지원하지 않으므로 디버그 연결을 받을 수 없습니다.
커스터마이징
Sail은 결국 Docker일 뿐이므로 거의 모든 부분을 자유롭게 커스터마이징할 수 있습니다. Sail이 사용하는 Dockerfile을 직접 게시하려면 sail:publish 명령어를 실행하세요:
sail artisan sail:publish이 명령어를 실행하면 Laravel Sail이 사용하는 Dockerfile 및 기타 설정 파일들이 애플리케이션 루트 디렉터리의 docker 디렉터리에 위치하게 됩니다. Sail 설치 내용을 커스터마이징한 후에는 애플리케이션의 compose.yaml 파일에서 애플리케이션 컨테이너의 이미지 이름을 변경하는 것이 좋습니다. 이름을 변경한 뒤에는 build 명령어로 애플리케이션 컨테이너를 재빌드하세요. 특히 한 대의 컴퓨터에서 여러 개의 Laravel 애플리케이션을 Sail로 개발하고 있다면, 각 애플리케이션 이미지에 고유한 이름을 지정하는 것이 매우 중요합니다:
sail build --no-cache