Я все еще новичок в docker и в настоящее время экспериментирую с созданием среды разработки. Я также создал сеть docker, чтобы добавить три услуги. У меня есть:
- An angular приложение
- An express приложение
- изображение mongodb
My docker следующие файлы:
Dockerfile для express приложения
FROM node:12.0.0
ENV PORT=3000
COPY . /var/www
WORKDIR /var/www
RUN npm install
EXPOSE $PORT
ENTRYPOINT ["npm", "run", "start.dev"]
Dockerfile для angular приложения
### STAGE 1: Build ###
FROM node:12.0.0
WORKDIR /app
COPY package.json ./
# COPY package.json package-lock.json ./
RUN npm install
COPY . .
EXPOSE 4200
CMD npm start
docker -compose.yml
version: '3'
services:
express-app:
build:
context: ./auth-app
dockerfile: Dockerfile
ports:
- "3000:3000"
networks:
- docker-network
mongodb:
image: mongo
networks:
- docker-network
angular-app:
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- "4200:4200"
volumes:
- "/frontend/node_modules"
- ".:/frontend"
networks:
- docker-network
networks:
docker-network:
driver: bridge
Angular пакет приложения. json
"scripts": {
"ng": "ng",
"start": "ng serve --host 0.0.0.0 --poll",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
Express пакет приложения. json
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start.dev": "nodemon -L src/app.ts"
},
docker журналы для angular контейнера
docker logs for express container
введите описание изображения здесь
При запуске «docker compose build» и «docker compose up» ошибок нет. Но горячая перезагрузка не работает при изменении исходного кода.
Я пробовал приложение angular, создав том docker, а приложение express не имеет тома docker.
Не могли бы вы помочь?
Спасибо.