Я разбудил https://github.com/HugoDF/express-postgres-starter
, добавил несколько локальных модулей и попал в кодовую базу, которую вы можете получить здесь, чтобы воспроизвести проблему https://giordanoarman@bitbucket.org/giordanoarman/docker-issue.git
.
Я не могу установить локальные модули, и, по-видимому, сторонние модули тоже не устанавливаются.
Я попытался заглянуть в конфигурацию docker-compose.yaml
, чтобы убедиться, что что-то там не так, но у меня нетне нашел ошибок. Может быть, я новичок в docker и docker-compose, поэтому я могу что-то упустить.
Когда я запускаю docker-compose up
, это терпит неудачу так:
me@thepc:~/thepath$ docker-compose up
Starting express-postgres-starter_postgres_1 ... done
Starting express-postgres-starter_app_1 ... done
Attaching to express-postgres-starter_postgres_1, express-postgres-starter_app_1
postgres_1 | 2019-10-16 14:54:11.649 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
postgres_1 | 2019-10-16 14:54:11.649 UTC [1] LOG: listening on IPv6 address "::", port 5432
postgres_1 | 2019-10-16 14:54:11.864 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres_1 | 2019-10-16 14:54:12.174 UTC [22] LOG: database system was shut down at 2019-10-16 14:40:22 UTC
postgres_1 | 2019-10-16 14:54:12.250 UTC [1] LOG: database system is ready to accept connections
app_1 |
app_1 | > express-postgres-starter@1.0.0 dev /app
app_1 | > nodemon ./start.js
app_1 |
app_1 | [nodemon] 1.19.3
app_1 | [nodemon] to restart at any time, enter `rs`
app_1 | [nodemon] watching dir(s): *.*
app_1 | [nodemon] watching extensions: js,mjs,json
app_1 | [nodemon] starting `node ./start.js`
app_1 | before cookie parser
app_1 | internal/modules/cjs/loader.js:638
app_1 | throw err;
app_1 | ^
app_1 |
app_1 | Error: Cannot find module 'cookie-parser'
app_1 | at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
app_1 | at Function.Module._load (internal/modules/cjs/loader.js:562:25)
app_1 | at Module.require (internal/modules/cjs/loader.js:692:17)
app_1 | at require (internal/modules/cjs/helpers.js:25:18)
app_1 | at Object.<anonymous> (/app/index.js:12:22)
app_1 | at Module._compile (internal/modules/cjs/loader.js:778:30)
app_1 | at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
app_1 | at Module.load (internal/modules/cjs/loader.js:653:32)
app_1 | at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
app_1 | at Function.Module._load (internal/modules/cjs/loader.js:585:3)
app_1 | [nodemon] app crashed - waiting for file changes before starting...
И когда язапустите docker-compose build
, это не получится так:
me@thecomputer:~/thepath$ docker-compose build
postgres uses an image, skipping
Building app
Step 1/7 : FROM node:10
---> 636ef87129d6
Step 2/7 : WORKDIR /app
---> Using cache
---> 5725fbf13d4e
Step 3/7 : COPY ./package.json .
---> Using cache
---> da0c91be40e9
Step 4/7 : RUN npm install
---> Running in f16814bb79d3
npm ERR! code ENOLOCAL
npm ERR! Could not install from "src/utils" as it does not contain a package.json file.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2019-10-16T15_05_50_411Z-debug.log
ERROR: Service 'app' failed to build: The command '/bin/sh -c npm install' returned a non-zero code: 1
Что заставляет меня думать, что команде установки не удается правильно установить пакеты, поэтому в основном процесс узла не может найти cookie-parser
, потому что ему не удалосьустановите локальные пакеты перед тем, как приступить к установке cookie-parser
.
Все, что мне нужно, - это просто использовать локальные пакеты, так как это мой предпочтительный способ организации кода в моем приложении. Спасибо! :)