#angular #docker #docker-compose #nestjs
Вопрос:
Я делаю веб-проект с использованием docker. После установки новых пакетов узлов я запускаю команду сборки docker-compose, а затем команду сборки docker-compose. Затем он говорит, что такого пакета(недавно установленного) нет. Но когда я обрезаю изображения docker и только что начал использовать docker-compose, все работает идеально.
В чем может быть потенциальная проблема?
Я нахожусь на компьютере с ubuntu и использую docker с правами суперпользователя.
version: "3.8"
services:
api:
build:
dockerfile: DockerFile
context: ./api
target: development
volumes:
- ./api:/nadeera/src/app
- /nadeera/src/app/node_modules/
command: npm run start:dev
depends_on:
- postgres
environment:
DATABASE_URL: postgres://user:password@postgres:5432/db
NODE_ENV: development
JWT_SECRET: hard_to_guess_secret_123
PORT: 3000
ports:
- 3000:3000
- 9229:9229
frontend:
build:
dockerfile: DockerFile
context: ./frontend
target: development
command: npm run start
volumes:
- ./frontend:/nadeera/frontend/src/app
- /nadeera/frontend/src/app/node_modules
ports:
- 4200:4200
links:
- api
postgres:
image: postgres:10.4
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: db
ports:
- 35000:5432
postgres_admin:
image: dpage/pgadmin4:4.28
depends_on:
- postgres
environment:
PGADMIN_DEFAULT_EMAIL: admin@admin.com
PGADMIN_DEFAULT_PASSWORD: password
ports:
- 5050:80
файл докера интерфейса
FROM node:14 AS development
WORKDIR /nadeera/frontend/src/app
COPY package*.json ./
RUN npm install
RUN npm install -g @angular/cli@12.0.0
COPY . .
RUN npm run build
EXPOSE 4200
файл настройки api
FROM node:14 AS development
WORKDIR /nadeera/src/app
COPY package*.json ./
RUN npm install
# COPY . .
RUN npm run build
EXPOSE 3000
###################
### Production ###
###################
FROM node:14 AS production
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}
WORKDIR /nadeera/src/app
COPY --from=development /nadeera/src/app/ .
EXPOSE 3000
CMD ["node","dist/main"]
Комментарии:
1. Перед сборкой и установкой вы удаляете старые контейнеры?
2. Я удалил старые, потому что после сборки и обновления модули узлов не копировались в том docker
3.
volumes:
Блок указывает докеру использовать содержимое анонимного тома вместоnode_modules
каталога изображения. Содержимое тома никогда не обновляется, если только ваше приложение не изменит его.