Dockerfile не может найти точку входа. sh - PullRequest
0 голосов
/ 06 февраля 2020

Моя файловая система:

  • Dockerfile
  • точка входа. sh
  • пакет. json
  • / shared_volume /

Dockerfile

FROM node:8


# Create and define the node_modules's cache directory.
RUN mkdir /usr/src/cache
WORKDIR /usr/src/cache

COPY . .
RUN npm install

# Create and define the application's working directory.
RUN mkdir /usr/src/app
WORKDIR /usr/src/app

# entrypoint to copy the node_modules and root files into /usr/src/app, to be shared with my local volume.
ENTRYPOINT ["/usr/src/cache/entrypoint.sh"]

пакет. json

{
  "name": "test1",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "echo hello world start"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "rimraf": "^3.0.1"
  }
}

точка входа. sh

#!/bin/bash
cp -r /usr/src/cache/. /usr/src/app/.

командная строка - bash script

Если я запускаю этот код (примечание: используя windows 10 с cmder, следовательно,% cd% not pwd):

docker run -it --rm -v %cd%/shared_volume:/app --privileged shared-volume-example bash

Ошибка

standard_init_linux.go:211: exec user process caused "no such file or directory"

Если я уберу ссылку на точку входа, то код работает, так что происходит с точкой входа?

Есть предложения. спасибо

1 Ответ

0 голосов
/ 06 февраля 2020

хорошо, кто-то еще отправил ответ относительно концов строки. Я использовал Atom line-end-selector и заменил его на LF, сохранил файл и теперь он работает.

...