FROM node:12
# создание директории приложения
WORKDIR /usr/src/app
#/usr/src/app
# установка зависимостей
# символ астериск ("*") используется для того чтобы по возможности
# скопировать оба файла: package.json и package-lock.json
COPY ./testContainer/package*.json ./
RUN npm install
# Если вы создаете сборку для продакшн
# RUN npm ci --only=production
# копируем исходный код
COPY testContainer/server.js ./
# Говорим какой порт слушает приложение
EXPOSE 8080
# Поиск и запуск файла
CMD [ "node", "server.js" ]
ну и самый главный нюанс - сразу изучи как делать мультистейж билд. нода тянет за собой дохуелион объектов при сборке, ака "кэш", и он в конечном контейнере тупо не нужен. поэтому делают так - сначала в контейнере "ноде:12" собирают а потом копируют статику в чистый контейнер с nginx например