Не удается запустить образ, ошибка команды CMD ["npm", "start"] - PullRequest
0 голосов
/ 18 октября 2019

Я просто собираю приложение: сборка докера. -t ang: l

после попытки запустить его: Docker run -d -p 83:80 ang: l

и получить ошибку:

docker: Ответ об ошибке от демона: Ошибка создания среды выполнения OCI: container_linux.go: 345: запуск процесса контейнера вызвал "exec: \" npm \ ": исполняемый файл не найден в $ PATH": неизвестно.

без этой команды CMD ["npm", "start"] все работает, но мне нужны сервер и bd.

Dockerfile:

# Stage 0, based on Node.js
FROM node:latest as node
WORKDIR /app
COPY package*.json ./
COPY . .

#RUN npm install
ARG configuration=production
RUN true && \
  npm run build:client-and-server-bundles -- --configuration=$configuration \
    && \
  npm prune --production && \
  true

# Stage 1, based on Nginx
FROM nginx:alpine
COPY --from=node /app/dist /usr/src/app/

CMD ["npm", "start"]

package.json команда: "start": "node dist / server",

Также я попытался использовать docker-compose.yml:

version: '3.4'
services:
  app:
    container_name: ang
    image: ang:l
    build:
      context: .
      dockerfile: Dockerfile
    command: npm start
    ports:
      - '3000:3000'
    links:
      - mysql
  mysql:
    container_name: mysql
    image: mysql
    ports:
      - '3306:3306'

оба варианта не работают, помогите пожалуйста, как собрать его в докере

1 Ответ

3 голосов
/ 18 октября 2019

Образ докера nginx не содержит npm. Вам нужно будет использовать node:latest, который содержит npm.

# Stage 1, based on Nginx
FROM node:latest
COPY --from=node /app/dist /usr/src/app/
CMD ["npm", "start"]

Вы можете использовать node:alpine для запуска приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...