Как в sail исправить SET GLOBAL sql_mode?

Для того чтобы исправить значение 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 в соответствии с вашими потребностями.