#php #mysql #laravel #docker-compose #laravel-sail
Вопрос:
Я установил laravel 8 через sail. По умолчанию docker-compose.yml использует mysql:8. Но мне нужно изменить версию mysql на 5.6 или 5.7.
Когда я запускаю sail up -d
и затем запускаю docker-compose ps
, я вижу, что контейнер mysql не запущен:
myproject_mysql_1 docker-entrypoint.sh mysqld Exit 2
Мой docker-compose.yml (я изменил только image
свойство»»):
mysql:
image: 'mysql:5.7'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
volumes:
- 'sailmysql:/var/lib/mysql'
networks:
- sail
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
retries: 3
timeout: 5s
И я создал новый файл Dockerfile для изображения php, и в этом файле я изменил только версию php с 8 на 7.3.
Другие контейнеры работают правильно. Когда я меняю версию mysql на 8, контейнер mysql работает правильно.
Комментарии:
1. обратите внимание, что 5.6 больше не поддерживается oracle; это означает отсутствие исправлений безопасности, если вы не платите третьей стороне (например, percona) за поддержку. скоро это будет справедливо и для 5,7.
2. Есть ли какие-либо ошибки в файлах журнала ?
Ответ №1:
Используйте команду:
плыви вниз-rmi all -v
Старые тома были удалены, и проблема была решена.