Docker在linux环境而不是windows环境下编写工作
我正在使用2个开发环境,一个是在家里的linux虚拟机,另一个是在办公室的windows笔记本电脑。angular environment的docker文件工作正常,直到几天前,当我尝试在笔记本电脑上用docker compose启动docker容器时,它显示以下错误: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
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图像,它再次工作。无论如何,问题现在已经解决了。非常感谢。