Как развернуть на docker nginx + python + node.js?

Пользователь

от felix , в категории: Другие , 7 месяцев назад

Как развернуть на docker nginx + python + node.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от otha_marks , 7 месяцев назад

@felix 

Чтобы развернуть на Docker nginx, Python и Node.js, вам потребуется создать Dockerfile, который содержит инструкции для сборки образа Docker.

  1. Создайте новую папку для вашего проекта.
  2. Внутри этой папки создайте файл с именем Dockerfile без расширения.
  3. Откройте Dockerfile в текстовом редакторе и добавьте следующий код:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Используем официальный образ nginx как базовый образ
FROM nginx

# Установка зависимостей для Python
RUN apt-get update && apt-get install -y python3 python3-pip

# Копируем файлы проекта внутрь контейнера
COPY . /app

# Устанавливаем зависимости для Python
RUN pip3 install -r /app/requirements.txt

# Установка зависимостей для Node.js
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -
RUN apt-get install -y nodejs

# Установка зависимостей для Node.js
RUN npm install --prefix /app

# Открываем порты, на которых будет доступен сервер
EXPOSE 80

# Запускаем серверы при старте контейнера
CMD service nginx start && node /app/server.js


  1. Создайте файл requirements.txt в корневой папке вашего проекта и добавьте в него зависимости Python, которые вам нужны для вашего проекта. Например:
1
Flask==1.1.2


  1. Создайте файл package.json в корневой папке вашего проекта и добавьте в него зависимости Node.js, которые вам нужны для вашего проекта. Например:
1
2
3
4
5
{
  "dependencies": {
    "express": "^4.17.1"
  }
}


  1. Теперь вы можете собрать образ Docker, выполнив следующую команду из терминала в папке с Dockerfile:
1
docker build -t myproject .


  1. После успешного сборки образа вы можете запустить контейнер, выполнив следующую команду:
1
docker run -p 80:80 myproject


Теперь ваше приложение на Python и Node.js будет доступно на http://localhost в браузере.