Docker不写诗.锁和对构建映像的要求



我正在尝试用Python + Poetry创建一个图像。

然而,在执行poetry install之后,我要求Dockerfile生成一个poetry.lock,然后生成一个requirements.txt,以出现在我的项目根这些文件,然而,它没有发生。

Dockerfile:

WORKDIR /code
RUN pip install "poetry==$POETRY_VERSION"
RUN poetry config virtualenvs.create false
COPY pyproject.toml poetry.lock* /code/
RUN poetry install --no-root
RUN poetry lock --no-update
RUN poetry export --format=requirements.txt > requirements.txt
COPY . /code/

如果我使用这些相同的命令并在构建后直接在容器内执行它们,它会正常工作,然后我可以访问生成的文件。

$ poetry lock --no-update
Skipping virtualenv creation, as specified in config file.
Updating dependencies
Resolving dependencies... (0.2s)
Writing lock file

问题是在我的docker-compose.yml,那里有一个"bind"在容器内完成所有替换的卷,删除构建过程中生成的文件。

web:
volumes:
- .:/code

也就是说,在构建过程中生成文件,然而,当容器通过compose上传时,本地文件(没有poetry.lockrequirements.txt)在容器内被替换,从而理解这个问题。

相关内容

  • 没有找到相关文章