Не запускается контейнер в Docker

Рейтинг: 0Ответов: 2Опубликовано: 23.03.2023

Запускаю docker run -d -p 80:8080 --name furn --rm furn . Но docker ps -a ничего не показывает. Если запустить без --rm, docker run -d -p 80:8080 --name furn furn , то контейнер создается,а при попытке посмотреть docker logs furn пишет sh: cross-env: Permission denied

Dockerfile:

FROM node:14 as client 
WORKDIR /app/client 
COPY client/package.json /app/client 
RUN npm install 
COPY client /app/client 
RUN npm run build 
FROM node:16-alpine 
WORKDIR /app 
COPY server/package.json /app 
RUN npm install 
COPY server /app 
COPY --from=client /app/client/build /app/client 
EXPOSE 8080 CMD ["npm", "start"] 

Ответы

▲ 1Принят

Команда docker run --name furn --rm furn создаёт контейнер из образа furn, присваивает ему имя furn и запускает. Раз docker ps -a ничего не показывает, значит созданный контейнер завершается раньше, чем вы выдаёте эту команду.

Ключ --rm указывает докеру, что созданный контейнер должен быть удалён после запуска. Вот почему вы не можете найти этот контейнер после завершения команды docker run.

Ваш контейнер, судя по всему, запускает внутри себя что-то на node.js. Проверьте Dockerfile и выставьте разрешение на доступ к node_modules и остальным компонентам, которые используются приложением.

▲ 0

В Dockerfile вместо строчек

COPY client /app/client 
RUN npm run build 

Прописал строчку

COPY client/build /app/client/build

Проект заработал (в .dockerignore и .gitignore соответствующие настройки тоже сделать надо).