Docker在linux环境而不是windows环境下编写工作

Docker在linux环境而不是windows环境下编写工作,windows,docker,docker-compose,dockerfile,Windows,Docker,Docker Compose,Dockerfile,我正在使用2个开发环境,一个是在家里的linux虚拟机,另一个是在办公室的windows笔记本电脑。angular environment的docker文件工作正常,直到几天前,当我尝试在笔记本电脑上用docker compose启动docker容器时,它显示以下错误: ng | /bin/sh: 1: sudo: not found ng exited with code 127 但是,同样的问题在我的linux虚拟机上不会发生 Dockerfile: FROM node:12 RU

我正在使用2个开发环境,一个是在家里的linux虚拟机,另一个是在办公室的windows笔记本电脑。angular environment的docker文件工作正常,直到几天前,当我尝试在笔记本电脑上用docker compose启动docker容器时,它显示以下错误:

ng    | /bin/sh: 1: sudo: not found
ng exited with code 127
但是,同样的问题在我的linux虚拟机上不会发生

Dockerfile:

FROM node:12

RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
RUN apt-get update && apt-get install -yq google-chrome-stable

RUN mkdir /app
WORKDIR /app

ENV PATH /app/node_modules/.bin:$PATH

COPY package.json package-lock.json /app/

RUN npm install
#RUN npm install -g @angular/cli

COPY . /app

EXPOSE 4200

CMD ng serve --host 0.0.0.0
docker-compose.yaml:

version: "3"

services:
  dj:
    container_name: dj
    build: Backend
    command: python manage.py runserver 0.0.0.0:80
    volumes:
      - ./Backend:/code
    ports:
      - "80:80"
  ng:
    container_name: ng
    build: Frontend/SPort
    volumes:
      - ./Frontend/SPort:/app
    ports:
      - "4200:4200"

我想您需要修复
Dockerfile
中的
sh
脚本

添加以下内容:

RUN  apt-get update && apt-get install -y dos2unix && dos2unix /path/to/the/script

希望这会有所帮助,因为错误来自windows中的
CRLF
字符我想您需要修复
Dockerfile中的
sh
脚本

添加以下内容:

RUN  apt-get update && apt-get install -y dos2unix && dos2unix /path/to/the/script

希望这会有所帮助,因为错误来自windows中的
CRLF
字符

这里没有提到
sudo
。到底是哪个组件产生了这个错误?这是奇怪的部分。当尝试使用
docker compose up
时,错误会弹出,ng容器立即显示错误并以代码127退出。此处显示的任何内容均未提及
sudo
。到底是哪个组件产生了这个错误?这是奇怪的部分。当尝试使用
docker compose up
时,错误刚刚弹出,ng容器立即显示错误并以代码127退出。很抱歉,您能否解释更多有关提供的代码?我对/path/to/the/script部分不太清楚。看看你在
-./Frontend/SPort:/app中复制的文件,你
也在
/app
中复制了
我想那里有一些
sh
文件,你需要在那里找到所有脚本,并使用
dos2unix
Nope修复它们。文件夹
/Frontend/SPort
是我的angular project的文件夹,其中没有
sh
文件。看看这个,我不知道为什么,但我删除了创建的所有图像和卷,重新构建docker图像,它再次工作。无论如何,问题现在已经解决了。谢谢。很抱歉,你能解释一下提供的代码吗?我对/path/to/the/script部分不太清楚。看看你在
-./Frontend/SPort:/app中复制的文件,你
也在
/app
中复制了
我想那里有一些
sh
文件,你需要在那里找到所有脚本,并使用
dos2unix
Nope修复它们。文件夹
/Frontend/SPort
是我的angular project的文件夹,其中没有
sh
文件。看看这个,我不知道为什么,但我删除了创建的所有图像和卷,重新构建docker图像,它再次工作。无论如何,问题现在已经解决了。非常感谢。