0

I am searching and googling for this for whole day. Now i am having headache. Anyone know a solution please let me know

My goal is to share common folder between linux container and windows folder

docker run -ti --rm -p 49160:8080  mycontainer

curl -i localhost:49160

Above works and display hello worlds. Mycontainer is nodejs application which respond to request.

Here is my Dockerfile:

From node:12.18.3
WORKDIR /home/projects/nodejs
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "node", "server.js" ]

Here is the contents of server.js:

'use strict';
const express = require('express');
const PORT = 8080;
const HOST = '0.0.0.0';
const app = express();
app.get('/', (req, res) => {
  res.send('Hello World');
});
app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);

My container build is using 4 files: .dockerignore, server.js, Dockerfile, and package.json.

===============================

This example container come from googling dockerize app ..if you search you find the example code.

================================================================= Anyways

docker run -ti --rm -p 49160:8080  mycontainer
curl -i localhost:49160

This works but when i try to share same folder container app do not run

PS C:\Dashboard\Workspace\docker\nodejs> docker run -ti --rm -p 49160:8080  -v C:\Dashboard\Workspace\docker\projects\nodejs:/home/projects/nodejs  mycontainer
internal/modules/cjs/loader.js:968
  throw err;
  ^

Error: Cannot find module 'express'
Require stack:
- /home/projects/nodejs/server.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:965:15)
    at Function.Module._load (internal/modules/cjs/loader.js:841:27)
    at Module.require (internal/modules/cjs/loader.js:1025:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/home/projects/nodejs/server.js:3:17)
    at Module._compile (internal/modules/cjs/loader.js:1137:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
    at Module.load (internal/modules/cjs/loader.js:985:32)
    at Function.Module._load (internal/modules/cjs/loader.js:878:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/home/projects/nodejs/server.js' ]
}
PS C:\Dashboard\Workspace\docker\nodejs>`

Please let me know how to share a folder between windows 10 and linux dockerize container app.

Nick ODell
  • 15,465
  • 3
  • 32
  • 66
alex K
  • 81
  • 1
  • 1
  • 5
  • docker run -ti --rm -p 49160:8080 -v C:\Dashboard\Workspace\docker\projects\nodejs:/home/projects/nodejs mycontainer Above command failed. Not used to stackflow so my question is not formatted well. – alex K Aug 01 '20 at 23:19
  • The container can't find the `express` module. Is that one of your dependencies in your package.json? – Nick ODell Aug 02 '20 at 00:49
  • i followed this video https://www.youtube.com/watch?v=CsWoMpK3EtE&t=361s
    docker run -it -p 9001:8080 -v $(pwd):/app mytest1
    stuck here ... docker: invalid reference format. if i put "$(pwd):/app" it does not change when i change local file info
    – alex K Aug 02 '20 at 04:50
  • 1
    Can you post the contents of package.json? You are missing the dependency for `express`. RE: `docker: invalid reference format.` Does [this page](https://stackoverflow.com/questions/47435418/docker-command-returns-invalid-reference-format) solve the issue? – Nick ODell Aug 02 '20 at 16:13

0 Answers0