Это ошибка, из-за которой я набираю команду docker-compose up
. Это мое приложение node.js, и я использую MongoDB. Моя цель - поместить это приложение в контейнер и опубликовать sh на docker хабе.
1. Creating mongo ... done
2. Creating app ... done
3. Attaching to mongo, app
4. mongo | 2020-07-13T05:02:33.356+0000 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
5. mongo | 2020-07-13T05:02:33.360+0000 W ASIO [main] No TransportLayer configured during NetworkInterface startup
6. mongo | 2020-07-13T05:02:33.360+0000 I CONTROL [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=03ce29ac0ecc
7. mongo | 2020-07-13T05:02:33.360+0000 I CONTROL [initandlisten] db version v4.2.8
8. mongo | 2020-07-13T05:02:33.360+0000 I CONTROL [initandlisten] git version: 43d25964249164d76d5e04dd6cf38f6111e21f5f
9. mongo | 2020-07-13T05:02:33.360+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1 11 Sep 2018
10. mongo | 2020-07-13T05:02:33.360+0000 I CONTROL [initandlisten] allocator: tcmalloc
11. mongo | 2020-07-13T05:02:33.360+0000 I CONTROL [initandlisten] modules: none
12. mongo | 2020-07-13T05:02:33.360+0000 I CONTROL [initandlisten] build environment:
13. mongo | 2020-07-13T05:02:33.360+0000 I CONTROL [initandlisten] distmod: ubuntu1804
14. mongo | 2020-07-13T05:02:33.360+0000 I CONTROL [initandlisten] distarch: x86_64
15. mongo | 2020-07-13T05:02:33.360+0000 I CONTROL [initandlisten] target_arch: x86_64
16. mongo | 2020-07-13T05:02:33.360+0000 I CONTROL [initandlisten] options: { net: { bindIp: "*" } }
17. mongo | 2020-07-13T05:02:33.361+0000 I STORAGE [initandlisten]
18. mongo | 2020-07-13T05:02:33.361+0000 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
19. mongo | 2020-07-13T05:02:33.361+0000 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
20. mongo | 2020-07-13T05:02:33.361+0000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=471M,cache_overflow=(file_max=0M),session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress],
21. mongo | 2020-07-13T05:02:33.863+0000 I STORAGE [initandlisten] WiredTiger message [1594616553:863974][1:0x7fa8ae84db00], txn-recover: Set global recovery timestamp: (0, 0)
22. mongo | 2020-07-13T05:02:33.885+0000 I RECOVERY [initandlisten] WiredTiger recoveryTimestamp. Ts: Timestamp(0, 0)
23. mongo | 2020-07-13T05:02:33.902+0000 I STORAGE [initandlisten] Timestamp monitor starting
24. mongo | 2020-07-13T05:02:33.910+0000 I CONTROL [initandlisten]
25. mongo | 2020-07-13T05:02:33.910+0000 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
26. mongo | 2020-07-13T05:02:33.910+0000 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
27. mongo | 2020-07-13T05:02:33.910+0000 I CONTROL [initandlisten]
28. mongo | 2020-07-13T05:02:33.911+0000 I STORAGE [initandlisten] createCollection: admin.system.version with provided UUID: 1c3e3ef6-c303-4517-9613-82f840f58488 and options: { uuid: UUID("1c3e3ef6-c303-4517-9613-82f840f58488") }
29. mongo | 2020-07-13T05:02:33.935+0000 I INDEX [initandlisten] index build: done building index _id_ on ns admin.system.version
30. mongo | 2020-07-13T05:02:33.935+0000 I SHARDING [initandlisten] Marking collection admin.system.version as collection version: <unsharded>
31. mongo | 2020-07-13T05:02:33.935+0000 I COMMAND [initandlisten] setting featureCompatibilityVersion to 4.2
32. mongo | 2020-07-13T05:02:33.935+0000 I SHARDING [initandlisten] Marking collection local.system.replset as collection version: <unsharded>
33. mongo | 2020-07-13T05:02:33.935+0000 I STORAGE [initandlisten] Flow Control is enabled on this deployment.
34. mongo | 2020-07-13T05:02:33.935+0000 I SHARDING [initandlisten] Marking collection admin.system.roles as collection version: <unsharded>
35. mongo | 2020-07-13T05:02:33.935+0000 I STORAGE [initandlisten] createCollection: local.startup_log with generated UUID: 03ec4702-b65a-4f88-8080-09ab0b26a7a4 and options: { capped: true, size: 10485760 }
36. mongo | 2020-07-13T05:02:33.954+0000 I INDEX [initandlisten] index build: done building index _id_ on ns local.startup_log
37. mongo | 2020-07-13T05:02:33.955+0000 I SHARDING [initandlisten] Marking collection local.startup_log as collection version: <unsharded>
38. mongo | 2020-07-13T05:02:33.955+0000 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
39. mongo | 2020-07-13T05:02:33.957+0000 I SHARDING [LogicalSessionCacheReap] Marking collection config.system.sessions as collection version: <unsharded>
40. mongo | 2020-07-13T05:02:33.957+0000 I NETWORK [listener] Listening on /tmp/mongodb-27017.sock
41. mongo | 2020-07-13T05:02:33.957+0000 I NETWORK [listener] Listening on 0.0.0.0
42. mongo | 2020-07-13T05:02:33.957+0000 I NETWORK [listener] waiting for connections on port 27017
43. mongo | 2020-07-13T05:02:33.964+0000 I CONTROL [LogicalSessionCacheReap] Sessions collection is not set up; waiting until next sessions reap interval: config.system.sessions does not exist
44. mongo | 2020-07-13T05:02:33.964+0000 I STORAGE [LogicalSessionCacheRefresh] createCollection: config.system.sessions with provided UUID: 4c715ea5-9f5f-41b3-9101-fd44ce5455a4 and options: { uuid: UUID("4c715ea5-9f5f-41b3-9101-fd44ce5455a4") }
45. mongo | 2020-07-13T05:02:33.980+0000 I INDEX [LogicalSessionCacheRefresh] index build: done building index _id_ on ns config.system.sessions
46. mongo | 2020-07-13T05:02:33.997+0000 I INDEX [LogicalSessionCacheRefresh] index build: starting on config.system.sessions properties: { v: 2, key: { lastUse: 1 }, name: "lsidTTLIndex", ns: "config.system.sessions", expireAfterSeconds: 1800 } using method: Hybrid
47. mongo | 2020-07-13T05:02:33.997+0000 I INDEX [LogicalSessionCacheRefresh] build may temporarily use up to 200 megabytes of RAM
48. mongo | 2020-07-13T05:02:33.997+0000 I INDEX [LogicalSessionCacheRefresh] index build: collection scan done. scanned 0 total records in 0 seconds
49. mongo | 2020-07-13T05:02:33.997+0000 I INDEX [LogicalSessionCacheRefresh] index build: inserted 0 keys from external sorter into index in 0 seconds
50. mongo | 2020-07-13T05:02:34.000+0000 I SHARDING [ftdc] Marking collection local.oplog.rs as collection version: <unsharded>
51. mongo | 2020-07-13T05:02:34.005+0000 I INDEX [LogicalSessionCacheRefresh] index build: done building index lsidTTLIndex on ns config.system.sessions
52. app |
53. app | > main-application@1.0.0 start /usr/src/app
54. app | > concurrently "npm run server" "npm run client"
55. app |
56. app | [1]
57. app | [1] > main-application@1.0.0 client /usr/src/app
58. app | [1] > npm start --prefix view
59. app | [1]
60. app | [0]
61. app | [0] > main-application@1.0.0 server /usr/src/app
62. app | [0] > nodemon mainserver.js
63. app | [0]
64. app | [0] [nodemon] 2.0.4
65. app | [0] [nodemon] to restart at any time, enter `rs`
66. app | [0] [nodemon] watching path(s): *.*
67. app | [0] [nodemon] watching extensions: js,mjs,json
68. app | [0] [nodemon] starting `node mainserver.js`
69. app | [1]
70. app | [1] > main@0.1.0 start /usr/src/app/view
71. app | [1] > react-scripts start
72. app | [1]
73. app | [1] sh: 1: react-scripts: not found
74. app | [1] npm ERR! code ELIFECYCLE
75. app | [1] npm ERR! syscall spawn
76. app | [1] npm ERR! file sh
77. app | [1] npm ERR! errno ENOENT
78. app | [1] npm ERR! main@0.1.0 start: `react-scripts start`
79. app | [1] npm ERR! spawn ENOENT
80. app | [1] npm ERR!
81. app | [1] npm ERR! Failed at the main@0.1.0 start script.
82. app | [1] npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
83. app | [1] npm WARN Local package.json exists, but node_modules missing, did you mean to install?
84. app | [1]
85. app | [1] npm ERR! A complete log of this run can be found in:
86. app | [1] npm ERR! /root/.npm/_logs/2020-07-13T05_02_35_310Z-debug.log
87. app | [1] npm ERR! code ELIFECYCLE
88. app | [1] npm ERR! errno 1
89. app | [1] npm ERR! main-application@1.0.0 client: `npm start --prefix view`
90. app | [1] npm ERR! Exit status 1
91. app | [1] npm ERR!
92. app | npm ERR! Failed at the main-application@1.0.0 client script.
93. app | [1] npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
94. app | [1]
95. app | [1] npm ERR! A complete log of this run can be found in:
96. app | [1] npm ERR! /root/.npm/_logs/2020-07-13T05_02_35_348Z-debug.log
97. app | [1] npm run client exited with code 1
98. app | [0] (node:98) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
99. app | [0] Server is running on port: 5000
100. mongo | 2020-07-13T05:02:36.010+0000 I NETWORK [listener] connection accepted from 172.19.0.3:45254 #1 (1 connection now open)
101. mongo | 2020-07-13T05:02:36.015+0000 I NETWORK [conn1] received client metadata from 172.19.0.3:45254 conn1: { driver: { name: "nodejs", version: "3.5.9" }, os: { type: "Linux", name: "linux", architecture: "x64", version: "4.19.76-linuxkit" }, platform: "'Node.js v10.21.0, LE (legacy)" }
102. app | [0] MongoDB Connected
Dockerfile
FROM node:10
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
docker - compose.yml
version: '3'
services:
app:
container_name: app
restart: always
build: .
ports:
- '80:3000'
links:
- mongo
mongo:
container_name: mongo
image: mongo
ports:
- '27017:27017'
.dockerignore
node_modules
npm-debug.log
основной сервер. js
var express = require('express')
var cors = require('cors')
var bodyParser = require('body-parser')
var app = express()
const mongoose = require('mongoose')
var port = process.env.PORT || 5000
app.use(bodyParser.json())
app.use(cors())
app.use(
bodyParser.urlencoded({
extended: false
})
)
//copy and paste below into mongodb
const mongoURI = 'mongodb://mongo:27017/MainData'
mongoose
.connect(
mongoURI,
{ useNewUrlParser: true }
)
.then(() => console.log('MongoDB Connected'))
.catch(err => console.log(err))
var Users = require('./controller/Users')
var Users2 = require('./controller/Users2')
app.use('/users', Users)
app.use('/users', Users2)
app.listen(port, function() {
console.log('Server is running on port: ' + port)
})
пакет. json
{
"name": "main-application",
"version": "1.0.0",
"description": "",
"scripts": {
"server": "nodemon mainserver.js",
"client": "npm start --prefix view",
"start": "concurrently \"npm run server\" \"npm run client\""
},
"keywords": [
"nodejs",
"jwt",
"passport",
"express"
],
"author": "",
"license": "ISC",
"dependencies": {
"alert": "^4.1.1",
"bcrypt-nodejs": "0.0.3",
"bcryptjs": "^2.4.3",
"body-parser": "1.19.0",
"compare": "^2.0.0",
"concurrently": "^5.1.0",
"cors": "^2.8.4",
"dotenv": "^8.2.0",
"express": "^4.16.3",
"express-session": "^1.17.1",
"express-validator": "^6.6.0",
"generate-password": "^1.5.1",
"jsonwebtoken": "^8.5.1",
"latest-version": "^5.1.0",
"mongodb": "^3.1.6",
"mongoose": "^5.2.15",
"nodemailer": "^6.4.8",
"nodemon": "^2.0.3",
"truffle": "^5.1.10"
}
}