Я 'dockersizing' (надеюсь, это правильный термин), существующее приложение Angular 2, работающее на angular-cli
(1.0.0-beta.31).
Я пытаюсь найти способ сделать ng serve
catch когда я обновляю файл в своем рабочем каталоге и, следовательно, обновляю свое приложение (как обычно). В противном случае мне нужно docker-compose up --build
каждый раз, когда я меняю файл...
EDIT. Идея, которую я изучаю, заключается в добавлении тома.
Здесь мой Dockerfile
:
# Dockerizing Angular 2 Client App
# @link: https://scotch.io/tutorials/create-a-mean-app-with-angular-2-and-docker-compose
# Create image based on the official Node 7 image from dockerhub
FROM node:7
# Create a directory where our app will be placed
RUN mkdir -p /usr/src/app
# Change directory so that our commands run inside this new directory
WORKDIR /usr/src/app
# Copy dependency definitions
COPY package.json /usr/src/app
# Install dependecies
RUN npm install
# Get all the code needed to run the app
# **EDIT**: comment out this, so I can set-up a volume
# COPY . /usr/src/app
# Expose the port the app runs in
EXPOSE 4200
# Serve the app
CMD ["npm", "start"]
Здесь мой docker-compose.yml
:
# specify docker-compose version
version: '2'
# Define the services/containers to be run
services:
angular2app: # name of the service
build: ./ # specify the directory of the Dockerfile
ports:
- "4200:4200" # specify port forewarding
# **EDIT**: Setting-up the volume here
volumes:
- .:/usr/src/app
РЕДАКТИРОВАТЬ: без конфигурации тома - приложение собирается и запускается успешно. После настройки громкости выводится сообщение об ошибке:
Building angular2app
Step 1/7 : FROM node:7
---> b3a95b94bd6c
Step 2/7 : RUN mkdir -p /usr/src/app
---> Using cache
---> 2afb01ffe055
Step 3/7 : WORKDIR /usr/src/app
---> Using cache
---> 44d08fdb4a19
Step 4/7 : COPY package.json /usr/src/app
---> Using cache
---> 87bb4f71c13c
Step 5/7 : RUN npm install
---> Using cache
---> ba88a0e1e480
Step 6/7 : EXPOSE 4200
---> Using cache
---> 4fddacae8486
Step 7/7 : CMD npm start
---> Using cache
---> c5ac29bf85fc
Successfully built c5ac29bf85fc
Creating minterface_angular2app_1
ERROR: for angular2app Cannot start service angular2app: Mounts denied: closed
ERROR: Encountered errors while bringing up the project.
Как настроить ng serve
, чтобы уловить изменения в моем текущем рабочем каталоге и перестроить мое приложение Angular 2?
PS: Я с docker-compose версией 1.11.1 (сборка 7c5d5e4), работающей на Mac (Sierra 10.12.3) через Docker для Mac.