Как запустить node v20.x на CentOs 7.9?

Вопрос или проблема

Я застрял с этой проблемой слишком долго. В основном у меня есть приложение node v20.x, которое я хотел бы запустить на сервере CentOS 7.9. По определенным причинам мы не хотим обновлять ОС сейчас, но я уверен, что должен быть способ запустить node v20?

Я собрал и установил GCC 10.3 из исходников, о котором я читал, что он необходим для node 20, но все равно получаю ошибки.

Вот ошибки, которые у меня возникли при запуске node .

node .
node: /lib64/libm.so.6: версия `GLIBC_2.27' не найдена (необходимо для node)
node: /lib64/libc.so.6: версия `GLIBC_2.28' не найдена (необходимо для node)
node: /lib64/libc.so.6: версия `GLIBC_2.25' не найдена (необходимо для node)

node: /lib64/libstdc++.so.6: версия GLIBCXX_3.4.20 не найдена (необходимо для node) node: /lib64/libstdc++.so.6: версия CXXABI_1.3.9 не найдена (необходимо для node) node: /lib64/libstdc++.so.6: версия GLIBCXX_3.4.21 не найдена (необходимо для node)

Это возможно? И как мне действовать дальше?

Также я немного осторожен, чтобы не прервать работу сервера apache / mysql, который работает в это время.

Я читал, что обновление glibc на CentOS 7 может быть крайне опасным и сделать систему не загружаемой?

Разве нет действительно безопасного способа обойти это?

Я решил обойти эту проблему, используя Docker.

На самом деле это вполне подходит для моего случая!

Ответ или решение

Запуск приложения на Node.js v20.x на сервере CentOS 7.9 может быть сложной задачей из-за зависимости от более новых версий библиотек, таких как glibc и libstdc++. Тем не менее, вы уже нашли решение, используя Docker, что является отличным выбором для динамических приложений. Ниже я приведу подробное объяснение, как вы можете это организовать.

1. Использование Docker для запуска Node.js v20.x

Docker позволяет вам запускать приложения в изолированных контейнерах, что исключит необходимость обновления операционной системы или библиотек на вашем сервере. Это также поможет избежать потенциальных конфликтов с работающими службами, такими как Apache и MySQL.

Шаги по установке Docker

  1. Обновите пакетный менеджер:

    sudo yum update -y
  2. Установите необходимые зависимости:

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  3. Добавьте репозиторий Docker:

    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  4. Установите Docker:

    sudo yum install -y docker-ce docker-ce-cli containerd.io
  5. Запустите и активируйте службу Docker:

    sudo systemctl start docker
    sudo systemctl enable docker
  6. Проверьте установку Docker:

    sudo docker run hello-world

Шаги для запуска Node.js v20.x в контейнере

  1. Создайте Dockerfile:
    Создайте файл Dockerfile в каталоге вашего проекта со следующим содержимым:

    FROM node:20
    
    WORKDIR /usr/src/app
    
    COPY package*.json ./
    
    RUN npm install
    
    COPY . .
    
    CMD ["node", "."]
  2. Соберите Docker-образ:
    В каталоге, где находится ваш Dockerfile, выполните команду:

    sudo docker build -t my-node-app .
  3. Запустите контейнер:
    Для запуска контейнера используйте команду:

    sudo docker run -d -p 3000:3000 my-node-app

    Здесь -d указывает на запуск в фоновом режиме, а -p 3000:3000 связывает порт вашего контейнера с портом хоста.

2. Заключительные рекомендации

  • Мониторинг и управление контейнерами: Используйте инструменты, такие как docker ps, для отслеживания запущенных контейнеров.
  • Резервное копирование данных: Поскольку вы работаете с контейнерами, убедитесь, что ваши данные сохраняются в томах Docker или внешних хранилищах.
  • Безопасность: Обратите внимание на безопасность контейнеров и на регулярные обновления используемых образов.

С помощью Docker вы можете без проблем запускать Node.js v20.x без необходимости обновлять glibc или другие критические системные библиотеки, что в свою очередь минимизирует риски для стабильности вашего серверного окружения.

Оцените материал
Добавить комментарий

Капча загружается...