Docker를 사용하는 Laravel의 개발 환경 인 Laravel Sail은 주로 프로젝트의 루트에있는`.env` 파일에 정의 된 환경 변수에 크게 의존합니다. 이러한 환경 변수는 애플리케이션 및 서비스를 구성하여 컨테이너의 원활한 오케스트레이션 및 지역 개발에 적합한 설정 조정을 가능하게합니다.
Laravel Sail에 사용되는 일반적인 환경 변수는 응용 프로그램 구성, 데이터베이스 구성, 서비스 포트 및 바인딩, 컨테이너 사용자 설정 및 항해 특정 사용자 정의와 같은 목적에 따라 그룹화 할 수 있습니다.
응용 프로그램 구성 변수
-`app_name` : Laravel 애플리케이션의 이름을 정의합니다.
-`app_env`는 항해를 위해 환경 유형을 일반적으로`local '으로 설정합니다.
-`App_Key`
-`app_debug` : 상세한 오류 메시지 및 디버깅 기능 ( 'true` 또는'false`)을 활성화하는 부울 플래그.
-`app_url` : 응용 프로그램에 로컬로 액세스 할 수있는 URL, 종종`http : // localhost`로 설정됩니다.
데이터베이스 연결 변수
데이터베이스 컨테이너 (`mysql` service)를 조정하려면 SAIL은 MySQL 데이터베이스 컨테이너에 대한 연결을 정의하는 변수를 사용합니다.
-`db_connection` : 데이터베이스 드라이버, 일반적으로`mysql '을 나타냅니다.
-`db_host`
-`DB_PORT ': MySQL 연결을위한 기본 포트, 일반적으로`3306'.
-`db_database` : 컨테이너 내부에서 사용되는 데이터베이스의 이름.
-`db_username` : 데이터베이스에 액세스하려면 사용자 이름입니다.
-`db_password ': 데이터베이스 사용자의 비밀번호.
redis 구성
항해는 선택적으로 캐싱 또는 세션 취급을위한 Redis를 지원합니다. 이러한 변수는 Redis 연결을 구성합니다.
-`redis_host ': redis 서버의 호스트 이름, 종종'redis '는 redis 컨테이너와 일치합니다.
-`redis_password ': redis의 비밀번호.
-`redis_port ': 포트 레 디스는 종종`6379'를 듣습니다.
서비스 포트 전달 변수
호스트 시스템의 공통 포트에서 이미 실행되는 서비스와의 충돌을 피하기 위해 SAIL은 서비스를 위해 전달 된 포트를 사용자 정의 할 수 있습니다.
-`Forward_db_port`
-`Forward_Redis_port`
-`Forward_MailHog_port`
-AppmyAdmin 또는 구성된 경우 기타 항해 서비스와 같은 서비스에 대한 다른`Forward_*`변수가 존재합니다.
컨테이너 사용자 및 권한 변수
SAIL은 로컬 호스트 사용자와 일치하는 사용자를 사용하여 컨테이너를 실행하여 파일 권한이 호스트와 컨테이너간에 일관성을 유지하도록합니다. 이러한 변수는 사용자 ID를 제어합니다.
-`wwwuser ': 호스트 머신의 사용자 ID에 해당하는 컨테이너 내부의 사용자 ID를 설정하여 파일 권한 일치를 보장합니다.
-`wwwgroup` : 호스트와 일치하도록 컨테이너 내부의 그룹 ID를 설정합니다.
항해 사용자 정의 변수
-`app_service ':`docker-compose.yml'내부의 기본 Laravel 애플리케이션 서비스 컨테이너 이름을 변경할 수 있습니다. 이것은 고급 구성에 유용 할 수 있습니다.
-`sail_files ': 표준 항해 파일과 함께로드 할 추가 Docker Compose 재정의 파일을 지정할 수 있습니다. 이것은 항해 환경을 사용자 정의하거나 확장하기위한 것입니다.
-`supervisor_php_command`
-`supervisor_php_user` : 컨테이너 내부의 감독자 프로세스에서 PHP를 실행하는 사용자를 설정합니다.
메일 서비스 변수
Laravel Sail에는 개발 중에 전송 된 이메일을 캡처하기위한 Mailhog 컨테이너가 함께 제공됩니다. 이 변수는 메일 설정을 구성합니다.
-`mail_mailer ':`smtp'또는 다른 메일러 드라이버로 설정합니다.
-`mail_host`
-`mail_port ': SMTP 용 포트, 일반적으로 Mailhog의 경우`1025'.
-`mail_username` 및`mail_password` : 필요한 경우 자격 증명 (일반적으로 개발 중 빈 공백).
대기열 및 캐시 드라이버
Sail의 기본값`.env`는 다음을 설정할 수 있습니다.
-`queue_connection` :`sync`,`database` 또는`redis`와 같은 큐 드라이버를 정의합니다.
-`cache_driver ': 캐시 드라이버, 종종'파일 '또는`redis'를 결정합니다.
기타 서비스 환경 변수
-` xdebug_config` : xdebug로 디버깅을 위해 항해하여 자동으로 구성되며 종종 Mac 및 Windows 용`client_host = host.docker.internal`을 설정합니다.
-`puid` 및`pgid`는 사용자 지휘부 일치를 위해 사용자 및 그룹 ID를 명시 적으로 설정하기 위해 사용자 정의 돛 구성에서 볼 수 있습니다.
항해의 환경 변수 역할 요약
`.env` 파일에 주로 정의 된 이러한 환경 변수는 다음과 같이 사용합니다.
- Laravel Application 기본 사항 (이름, 환경, 디버그 모드, URL)을 구성하십시오.
- Laravel 애플리케이션 컨테이너를 Docker 내부의 데이터베이스 및 캐시 서비스에 연결하십시오.
- 로컬 포트 충돌을 피하기 위해 컨테이너에서 호스트 컴퓨터로의 포트를 매핑합니다.
- 호스트와 컨테이너 시스템간에 적절한 사용자 및 그룹 권한을 보장하십시오.
- 고급 사용을 위해 Laravel Sail Environment 컨테이너 및 프로세스를 사용자 정의하십시오.
`.env` 파일 환경 변수는 SAIL의`docker-compose.yml`에 정의 된 컨테이너의 동작과`sail_files`로 표시된 모든 확장 된 작성 파일을 직접 제어합니다. 이러한 변수를 조정하고 항해를 다시 시작합니다 (`./vendor/bin/sail down` 및`./vendor/bin/sail Up -d`와 같은 명령을 사용하면 구성 변경이 적용됩니다.
이 설정을 통해 Laravel Sail은 Docker를 사용하여 고립되었지만 구성 가능한 지역 개발 환경을 제공 할 수 있으며 개발자 편의와 유연성을 유지하면서 실용적으로 생산 동작을 반영합니다.