首页 > 解决方案 > Docker 文件夹在容器中重复

问题描述

有这个 Dockerfile

Dockerfile

FROM python:3.8
ADD Pipfile.lock /app/Pipfile.lock
ADD Pipfile /app/Pipfile

WORKDIR /app
COPY . /app

RUN pip install pipenv
RUN pipenv install --system --deploy --ignore-pipfile
ENV FLASK_APP=app/http/api/endpoints.py
ENV FLASK_RUN_PORT=4433
ENV FLASK_ENV=development
ENTRYPOINT ["python"] 
CMD ["-m", "flask", "run"]

为什么在 Docker 容器中我的应用程序登陆

/app/app/http/api

应用程序重复

如何将其复制到:

/app/http/api

我该如何解决?

更新1:

我的 docker-compose 和 Dockerfile 和 ls 输出。

https://0bin.net/paste/ePRws72M#IV8H6iRJ+UMJFr8lB7CRQYKwsnGYflsmOlyvFxZA7zE

标签: dockerdocker-composedockerfile

解决方案


你这里有两个问题

  1. copy . /app将整个工作目录从主机复制到/app映像中的目录中。如果您只想将./app子目录更改为copy ./app /app

  2. 您的 docker-compose 将主机的当前工作目录挂载到挂载点下的容器中/app。这隐藏了图像的现有目录/app。因此,您要么需要将您的应用程序复制到不同的目录,要么为您的卷使用不同的挂载点


推荐阅读