контейнер mysql_1 exited with code 137 после запуска. Из интернета знаю, что это из-за недостатка памяти.
Более подробно об ошибке в статье - https://bobcares.com/blog/error-137-docker/
Exit Code 137: Indicates failure as container received SIGKILL (Manual intervention or ‘oom-killer’ [OUT-OF-MEMORY])
Единственное, что помогло это через docker-desktop увлеличить объем памяти.
So it is an easy fix, go to the Docker Menu and select Preferences then the Advanced tab and increase the Memory.
Такой выриант меня не устраивает из-за других проблем связаных с docker-desktop.
Вопрос: Как исправить ошибку только через команды docker или прописать что-то в docker-compose.yml?
Докер на маке и винде это виртуалка, соответственно в ней лимитированы ресурсы, в т.ч. RAM. На уровне docker run/docker-compose.yml можно выставить лимиты для конкретного контейнера, но если приложению нужно больше памяти, чем есть в виртуалке, то это не поможет
У меня Linux, лимиты пробовал выставить, тестил, все равно гасился контейнер
А почему ты тогда пишешь про docker desktop?
Ну так дело не в лимитах, а в потреблении памяти приложением выше, чем лимит. Сколько оперативны доступно, сколько указано в настройках mysql?
Как у нас в мастере сча docker-compose.yml tt_mysql: image: mysql:5.7.17 expose: - "${MYSQL_PORT}" ports: - ${MYSQL_PORT}:3306 volumes: - ./containers/mysql/conf:/etc/mysql/conf.d - ./database:/var/lib/mysql - ./logs/mysql:/etc/logs/mysql - ./init_sql:/init_sql environment: - MYSQL_ROOT_PASSWORD=qwerty дополнительно прописывал после image "" mem_limit: 2g mem_reservation: 1g "" mysql.cnf [mysql] default-character-set=utf8 [client] default-character-set=utf8
так же пытался выделять ещё больше памяти, но всё приводило к одному результату - падению(
Тебе не надо прописывать mem_limit у контейнера, так OOM наступит ещё раньше. Какие параметры, касающиеся памяти, прописаны в настройках самого mysql?
кстати docker desktop не так давно и на linux есть https://docs.docker.com/desktop/linux/install/
Обсуждают сегодня