Угловая разработка Docker Container - PullRequest
0 голосов
/ 29 июня 2018

Я пытаюсь создать докер-контейнер для использования в разработке Angular.

Используя почти такой же докер-файл, как и приведенный ниже, я смог создать контейнер для разработки для React.

FROM node:8.9.0

ENV NPM_CONFIG_LOGLEVEL warn
ARG app_env
ENV APP_ENV $app_env

RUN mkdir -p /app1
WORKDIR /app1
COPY ./app1 ./

COPY app1/package.json /app1

RUN npm install
RUN npm update
RUN npm install -g typescript

EXPOSE 4200

RUN chmod a+x /app1/node_modules/.bin/*

ENTRYPOINT ["tail", "-f", "/dev/null"]
#ENTRYPOINT npm start

Для запуска контейнера я использую:

docker run -i -t -p 4200:4200 -v /var/react/{your app name}/{Your apps sub folder}/src:/{ Your apps sub folder } /src {container ID}

Затем я вхожу в контейнер и запускаю npm start или npm start 0.0.0.0:4200. Все успешно компилируется и говорит, что оно должно работать на localhost:4200, но я получаю сообщение об ошибке соединения отказано.

Я повторю, используя идентичный докер-файл, я могу сделать это с помощью реакции. Единственными различиями между файлами являются номера портов и подключенные тома.

Таким образом, это заставляет меня думать, что это как-то связано с угловой конфигурацией, но я не знаю, с чего начать. Есть идеи?

спасибо!

Ответы [ 2 ]

0 голосов
/ 11 июля 2018

Как я и подозревал, это была проблема конфигурации Angular. Все, что мне нужно было сделать, это изменить мой package.json файл.

От:

"scripts": { "ng": "ng", "start": "ng serve"

Кому:

"scripts": { "ng": "ng", "start": "ng serve --host 0.0.0.0 --disable-host-check"

Мой Dockerfile остался прежним.

0 голосов
/ 29 июня 2018

Привет, есть простые шаги по сборке и запуску файла Docker в вашем угловом проекте

1) создайте файл .dockerignore и добавьте node_modules .git в него

2) добавить Dockerfile с помощью

FROM node:8.6 as node
WORKDIR /app
COPY package.json /app/
RUN npm install
COPY ./ /app/
ARG env=prod
RUN npm run build -- --prod --environment $env

# Stage 1, based on Nginx, to have only the compiled app, ready for production with Nginx
FROM nginx:1.13
COPY --from=node /app/dist/ /usr/share/nginx/html
COPY ./nginx-custom.conf /etc/nginx/conf.d/default.conf

3) Создайте свой образ, используя производственную конфигурацию (по умолчанию), например ::100100

docker build -t my-angular-project:prod .

обратите внимание на точку в конце линии

4) Создайте свой образ, используя среду разработки (без конфигурации), например ::

docker build -t my-angular-project:dev --build-arg configuration="" .

5) Протестируйте свой образ для производственной среды (производственной конфигурации) с помощью:

docker run -p 80:80 my-angular-project:prod

6) Откройте ваш браузер в http://localhost.

7) Протестируйте ваш образ для среды разработки (без конфигурации) с помощью:

docker run -p 80:80 my-angular-project:dev

надеюсь, что эти шаги помогут вам запустить файл Docker

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