Для того чтобы исправить значение sql_mode
в Laravel Sail, вы можете воспользоваться несколькими способами, в зависимости от ваших потребностей.
Первый способ - изменение настроек контейнеров в файле docker-compose.yml
. Если вы откроете этот файл в корневой директории вашего Laravel проекта, вы найдете раздел services
, в котором перечислены все контейнеры, используемые в Sail. Для контейнера MySQL, вы можете добавить секцию command
для переопределения CMD
, а затем указать --init-file
с путем к SQL-файлу, который будет выполнен при запуске контейнера. В этом SQL-файле вы можете установить нужное значение sql_mode
. Пример кода для файла docker-compose.yml
:
services: mysql: command: - "--init-file" - "/etc/mysql/sql-mode.cnf"
Второй способ - использование файлов среды .env
. В вашем файле .env
вы можете добавить переменную MYSQL_INIT_COMMAND
, которая будет исполняться при запуске контейнеров MySQL. В этой переменной вы можете установить нужное значение sql_mode
. Пример кода для файла .env
:
MYSQL_INIT_COMMAND=SET GLOBAL sql_mode='ваше_значение_sql_mode'
Третий способ - создание собственного Dockerfile. Если вы хотите использовать более сложные настройки или особые требования, вы можете создать собственный Dockerfile для контейнера MySQL. В этом Dockerfile вы можете установить нужное значение sql_mode
с помощью инструкции RUN
. Затем вы должны изменить Dockerfile Sail и добавить путь к своему Dockerfile для контейнера MySQL. Пример кода для Dockerfile:
FROM mysql:latest RUN echo "SET GLOBAL sql_mode='ваше_значение_sql_mode'" > /docker-entrypoint-initdb.d/sql-mode.cnf
В файле docker-compose.yml
добавьте следующий код в раздел services
:
services: mysql: build: context: ./docker/mysql dockerfile: Dockerfile
Эти способы позволят вам изменить значение sql_mode
в Laravel Sail в соответствии с вашими потребностями.