Dockerfile для запуска статического содержимого nodejs в контейнере Docker - PullRequest
0 голосов
/ 06 ноября 2018

Нужен совет по докеризации и запуску приложения статического контента JS узла в кластере K8s.

У меня есть статический веб-контент, который я запускаю «npm run build» в терминал, который генерирует / build и направляет мой веб-сервер IIS в /build/Index.html.

Теперь я начал создавать файл Docker, как мне указать, чтобы мой образ nodeJS вызывал файл /build/Index.html

FROM node:carbon
WORKDIR /app
COPY /Core/* ./app
npm run build
EXPOSE 8080
CMD [ "node", ".app/build/index.html" ]

Пожалуйста, как мне запустить это приложение только на узле v8.9.3 и нпм 5.6.0?

Любые входные данные, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Предположения:

  1. package.json находится в каталоге Code.
  2. npm run build будет работать вне контейнера, а каталог build будет создан в каталоге Code.
  3. Мы скопируем весь каталог Code/build в каталог /app контейнера.
  4. Мы скопируем package.json в папку /app и запустим веб-сайт с использованием скриптов, доступных в файле package.json.

Решение:

Я бы сказал, добавьте script с именем start в package.json и вызовите этот скрипт из команды CMD Dockerfile. Сценарий будет выглядеть так:

  "scripts": {
    "start": "node ./index.html",
  },

И Dockerfile будет выглядеть так:

FROM node:8.9.3

# Make app directory in the container.
RUN MKDIR /app

# Copy whole code to app directory.
COPY Code/build/ /app

# Copy package.json app directory.
COPY package.json /app

# make app directory as the working directory.
WORKDIR /app

# Install dependencies.
RUN npm install -only=production

# Expose the port
EXPOSE 8080

# Start the process
CMD ["npm", "start"]
0 голосов
/ 06 ноября 2018

Вы можете указать версию узла специально:

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