我正在尝试通过对每个容器进行泊坞并使用docker-compose
来对我的React-Flask应用进行泊坞。
每个应用的Dockerfile
如下:
反应-前端
FROM node:latest
WORKDIR /frontend/
ENV PATH /frontend/node_modules/.bin:$PATH
COPY package.json /frontend/package.json
COPY . /frontend/
RUN npm install --silent
RUN npm install react-scripts@3.0.1 -g --silent
CMD ["npm", "run", "start"]
烧瓶-后端
#Using ubuntu as our base
FROM ubuntu:latest
#Install commands in ubuntu, including pymongo for DB handling
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential
RUN python -m pip install pymongo[srv]
#Unsure of COPY command's purpose, but WORKDIR points to /backend
COPY . /backend
WORKDIR /backend/
RUN pip install -r requirements.txt
#Run order for starting up the backend
ENTRYPOINT ["python"]
CMD ["app.py"]
当我仅使用docker build
和docker up
时,它们中的每一个都可以正常工作。我检查了它们在独立构建和运行时可以正常工作。但是,当我docker-compose up
docker-compose.yml
看起来像
# Docker Compose
version: '3.7'
services:
frontend:
container_name: frontend
build:
context: frontend
dockerfile: Dockerfile
ports:
- "3000:3000"
volumes:
- '.:/frontend'
- '/frontend/node_modules'
backend:
build: ./backend
ports:
- "5000:5000"
volumes:
- .:/code
给我下面的错误
Starting frontend ... error
Starting dashboard_backend_1 ...
ERROR: for frontend Cannot start service sit-frontend: error while creating mount source path '/host_mnt/c/Users/myid/DeskStarting dashboard_backend_1 ... error
ERROR: for dashboard_backend_1 Cannot start service backend: error while creating mount source path '/host_mnt/c/Users/myid/Desktop/dashboard': mkdir /host_mnt/c: file exists
ERROR: for frontend Cannot start service frontend: error while creating mount source path '/host_mnt/c/Users/myid/Desktop/dashboard': mkdir /host_mnt/c: file exists
ERROR: for backend Cannot start service backend: error while creating mount source path '/host_mnt/c/Users/myid/Desktop/dashboard': mkdir /host_mnt/c: file exists
ERROR: Encountered errors while bringing up the project.
发生这种情况是因为我使用Windows吗?可能是什么问题?预先感谢。
答案 0 :(得分:1)
我删除了与docker共享的文件夹并重新创建了一个具有相同名称的文件夹后,看到了这一点。我认为这删除了权限。要解决它,我:
答案 1 :(得分:1)
对我而言,唯一可行的方法是重启Docker守护进程
答案 2 :(得分:0)
检查这是否与docker/for-win issue 1560
有关我有同样的问题。我能够通过运行来解决它:
docker volume rm -f [name of docker volume with error]
然后重新启动docker,并运行:
docker-compose up -d --build
我尝试了这些相同的步骤,而没有重新启动docker,但是重新启动计算机,但这不能解决问题。
为我解决了这个问题的是删除带有错误的卷,重新启动docker,然后再次进行构建。
其他原因:
在Windows上,这可能是由于用户密码更改所致。取消选中该复选框以停止共享驱动器,然后允许Docker检测到您正在尝试安装驱动器并共享它。
也提到了:
我刚跑过
docker-compose down
,然后跑了docker-compose up
。为我工作。我尝试使用
docker container prune
,然后按y
删除所有停止的容器。这个问题已经解决了。