У меня есть угловая библиотека, которую я создаю так:
ng build my-library -- --watch
и создается каталог dist
.
У меня есть фиктивное угловое приложение для проверки моей библиотеки, в package.json
:
docker:start : ng serve --host 0.0.0.0 --poll 1
Когда я запускаю в своем терминале, во время разработки я запускаю build
в одном терминале, а приложение - в другом. Когда я делаю изменения, сборка забирает их, и как только новая библиотека собирается, служба принимает изменения, и я вижу их в браузере.
Я пытаюсь воссоздать это в Docker так:
FROM node:10-alpine
WORKDIR /app
EXPOSE 4200
# Install Angular/CLI to use `ng`
RUN npm install -g @angular/cli
# My Application
COPY ./package*.json ./
RUN npm install
# Build ./dist/my-library
COPY ./ ./
RUN cd ./projects/my-library && npm run build
CMD ["npm","run","docker:start"]
Мой docker-compose.yml
:
version: '3'
services:
app:
container_name: 'app'
build:
context: .
dockerfile: Dockerfile.dev
ports:
- '4200:4200'
volumes:
- /app/node_modules
- .:/app
Я хочу иметь возможность запускать docker-compose up
и выполнять разработку, как я делаю в нескольких терминалах.