Я пытаюсь запустить приложение angular в режиме разработки внутри docker контейнера, но когда я запускаю его с docker -композицией сборки, оно работает правильно, но когда я пытаюсь установить контейнер, я получаю ошибка ниже:
ERROR: for sypgod Cannot start service sypgod: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"npm\": executable file not found in $PATH
Реальная проблема в том, что она не распознает команду npm serve, но почему ??
Настройка будет ниже:
* Контейнер 1024 * (Nginx Обратный прокси-сервер -> Angular, работающий в порту 4000)
Я знаю, что есть лучшие способы его развертывания, но в данный момент мне нужна эта настройка по некоторым личным причинам
Dockerfile:
FROM node:10.9
COPY package.json package-lock.json ./
RUN npm ci && mkdir /angular && mv ./node_modules ./angular
WORKDIR /angular
RUN npm install -g @angular/cli
COPY . .
FROM nginx:alpine
COPY toborFront.conf /etc/nginx/conf.d/
EXPOSE 8080
CMD ["nginx", "-g", "daemon off;"]
CMD ["npm", "serve", "--port 4000"]
NginxServerSite
server{
listen 80;
server_name sypgod;
location / {
proxy_read_timeout 5m;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:4000/;
}
}
Docker Создать файл (важная часть, в которой у меня возникла проблема)
sypgod: # The name of the service
container_name: sypgod # Container name
build:
context: ../angular
dockerfile: Dockerfile # Location of our Dockerfile