Как установить ограничение памяти для док-контейнера, созданного с помощью удаленной конфигурации devcontainer для Visual Studio Code? - PullRequest
0 голосов
/ 23 октября 2019

Моя конфигурация:

  • Ноутбук с VSCode (с расширением для удаленной разработки VSCode) и Docker Desktop.
  • Сервер с Docker Host.
  • Мой проект локально просто имеет: devcomposer.json и docker-compose.json.

Мой процесс:

  • Открыть туннель SSHна сервер.
  • В VSCode я открываю контейнер (который создает контейнер).
  • Мой контейнер удаленной разработки прекрасно работает, и я могу использовать там все.

Моя маленькая ПРОБЛЕМА:

При запуске простого сгущения по огромным количествам папок, таких как node_modules, требования к памяти контейнера сводятся с ума, сбивая не только контейнер, но и мойвесь сервер ....

я пробовал:

  1. Установка runArgs с помощью:

    • ["-m "," 3g "]
    • [" - memory = 3g "]
    • [" - memory = \ "3g \" "]
    • ["- память-бронирование = 3g "]
  2. Установка ulimit в моем Dockerfile для пользователя, который позже запускает команду chown.

  3. Удаление всех изображений и контейнеров на хосте Docker, чтобы принудительно --no-cache (которыйЯ так и не нашел, как его ввести: - /)

HELP! Ничего не работает ... Кто-то знает, что я могу сделать, чтобызапретить контейнеру использовать всю память с сервера?

Репо с конфигом: https://github.com/gsusI/vscode-remote_dev-config_test

1 Ответ

0 голосов
/ 23 октября 2019

На случай, если кто-нибудь окажется в том же бесконечном цикле. Я обнаружил, в чем проблема !!

Похоже, что runArgs не используется при использовании docker-compose, поэтому конфигурации здесь не имеют никакого эффекта.

Я знаю !! Вы ожидаете, что где-нибудь предупреждение, верно?

Следующий лучший вариант - это сделать это через файл docker-compose.yml, верно? Что ж, это верно только в том случае, если вы используете docker-composer версии 2, поскольку версия 3 будет работать только с роем Docker. В моем случае я перешел на версию 2, и теперь все работает гладко.

TL; DR

Ваш файл docker-compose.yml должен выглядеть следующим образом:

version: '2'
services:
  <your-service-name>:

    ...

    mem_limit: 2g
    mem_reservation: 2g

Проверьте это для подсказок синтаксиса: https://docs.docker.com/compose/compose-file/compose-file-v2/#cpu-and-other-resources

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...