Докер: Windows и Linux отличаются выходом. Зачем? - PullRequest
0 голосов
/ 10 ноября 2018

Я обнаружил действительно странное поведение моего Dockerfile. Он отлично работает на моей машине с Linux, но под Windows у меня получился странный вывод с моим контейнером. Может ли кто-нибудь проверить мои команды и сказать, что с ними не так? Почему он работает под Ubuntu без проблем? Я думал, что Docker гарантирует, что он может быть запущен одинаково в разных операционных системах ...

Команды Windows:

git clone https://github.com/falent/googleHomeAssistantExpressNodeJS.git C:\Users\%username%\Documents\googleHomeAssistantExpressNodeJS

$ cd C:\Users\%username%\Documents\googleHomeAssistantExpressNodeJS

$ sudo build -t assistant .

$ docker run -v /C/Users/%username%/Documents/googleHomeAssistantExpressNodeJS:/skill -it --name myAssistant assistant

Я получил этот вывод под Windows:

: not foundypoint.sh: 2: /skill/entrypoint.sh:
sleep: invalid time interval '10s\r'
Try 'sleep --help' for more information.
/skill/entrypoint.sh: 4: cd: can't cd to /skill

Dockerfile:

FROM node:slim

RUN npm install -g nodemon@1.14.7

COPY package.json /skill/package.json

RUN mkdir -p /skill/
WORKDIR /skill/
RUN npm install

COPY entrypoint.sh /skill
RUN chmod +x /skill/entrypoint.sh

ENTRYPOINT ["sh","/skill/entrypoint.sh"]

entrypoint.sh

#!/bin/sh

sleep 10s
cd /skill
npm install
nodemon 
...