ошибка app.set при развертывании приложения узла в docker

#node.js #docker #express #docker-compose

#node.js #docker #экспресс #docker-compose

Вопрос:

Я разработал API с использованием express js, который работает нормально. Я использую VS code и запускаю приложение, выполнив команду «узел app.js » в терминале. Теперь я хочу развернуть этот API на сервере с помощью docker. Я следовал этому руководству: https://github.com/nodejs/docker-node/blob/main/README.md#how-to-use-this-image и я использую опцию docker-compose. Docker-compose.yml:

 version: "2"
services:
  node:
    image: "node:current-alpine3.12"
    user: "node"
    working_dir: /home/node/app
    environment:
      - NODE_ENV=production
    volumes:
      - ./node:/home/node/app
    expose:
      - "80"
    command: "npm start"
 

Я скопировал все файлы из своего проекта VS code с использованием scp в папку ./node, указанную в файле docker. Затем я получаю эту ошибку при запуске docker-compose up:

 TypeError: app.set is not a function


    at Object.<anonymous> (/home/node/app/bin/www:16:5)


    at Module._compile (node:internal/modules/cjs/loader:1097:14)


    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1149:10)


    at Module.load (node:internal/modules/cjs/loader:975:32)


    at Function.Module._load (node:internal/modules/cjs/loader:822:12)


    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)


    at node:internal/main/run_main_module:17:47



Node.js v17.2.0


npm notice 


npm notice New minor version of npm available! 8.1.4 -> 8.2.0


npm notice Changelog: <https://github.com/npm/cli/releases/tag/v8.2.0>


npm notice Run `npm install -g npm@8.2.0` to update!


npm notice 
 

В моем app.js Я не использую app.set. Я читал о том, что у кого-то еще возникли проблемы при настройке порта. Я использую app.listen(80, () => console.log("Listening on port 80")); для установки правильного порта. Я не уверен, почему я получаю ошибку app.set. Как мне исправить эту проблему?