Запуск приложения Angular в качестве образа докера с использованием Node js - PullRequest
1 голос
/ 21 июня 2019

Попытка построить угловое приложение в Docker и запустить в качестве контейнера в моем локальном компьютере с помощью Node js.

Я использовал образ сборки, используя приведенный ниже Dockerfile, но я не уверен, чего мне не хватает во время работы.Кто-то может указать мне?

Dockerfile:

FROM node:10.15.3
ENV HOME=/home
WORKDIR $HOME
RUN npm config set strict-ssl false \
    && npm config set proxy http://proxy.xxxxxx.com:8080
COPY package.json .
RUN npm install

Изображение, созданное с помощью команды ниже, успешно

docker build -t example .

Я пытаюсь запустить изображение с помощью команды ниже, ноэто не помогает

docker run -p 4201:4200 example

Ответы [ 3 ]

2 голосов
/ 21 июня 2019

Контейнеру нужно запустить процесс переднего плана, тогда он не выйдет.Если нет, контейнер сразу выйдет.

В вашем случае вам нужно COPY ваш проект nodejs в контейнер при docker build, а также запустить проект в CMD, как CMD [ "npm", "start" ].Поскольку веб-сервер не завершает работу, ваш контейнер не будет выходить.

Хорошая статья здесь , где вы найдете справку о том, как докернизировать веб-приложение Node.js.

1 голос
/ 21 июня 2019

ваш Dockerfile не запускает / не обслуживает ваше приложение, для этого вам необходимо:

  • установить angular / cli
  • скопировать приложение
  • запустить / обслуживать приложение
FROM node:10.15.3

RUN npm config set strict-ssl false \
    && npm config set proxy http://proxy.xxxxxx.com:8080

# get the app
WORKDIR /src
COPY . .

# install packages
RUN npm ci
RUN npm install -g @angular/cli

# start app
CMD ng serve --host 0.0.0.0

надеюсь, это поможет.

0 голосов
/ 21 июня 2019

Просто обновите свой Dockerfile, чтобы достичь своей цели, чтобы получить больше опций, см. здесь :

# base image
FROM node:12.2.0

RUN npm config set strict-ssl false \
    && npm config set proxy http://proxy.xxxxxx.com:8080

# install chrome for protractor tests
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
RUN apt-get update && apt-get install -yq google-chrome-stable

# set working directory
WORKDIR /app

# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH

# install and cache app dependencies
COPY package.json /app/package.json
RUN npm install
RUN npm install -g @angular/cli@7.3.9

# add app
COPY . /app

# start app
CMD ng serve --host 0.0.0.0 
...