我有这样一个Dockerfile:
FROM python:3.9
WORKDIR /app
RUN apt-get update && apt-get upgrade -y
RUN curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | python -
ENV PATH /root/.local/bin:$PATH
COPY pyproject.toml poetry.lock Makefile ./
COPY src ./src
COPY tests ./tests
RUN poetry install && poetry run pytest && make clean
CMD ["bash"]
如您所见,测试将在构建过程中运行。它可以稍微降低构建的速度,但会确保我的代码在Docker容器中运行。
如果测试在我的本地机器上通过,并不意味着它们也会通过码头容器。
假设我在代码中添加了一个特性,它使用chromedriver或ffmpeg二进制文件,它存在于我的系统中,因此测试将在我的系统中通过。
但是,假设我忘记在Dockerfile中安装这些依赖项,那么docker构建将失败(因为在构建过程中正在运行测试)。
做我想做的事的标准方法是什么?
我的Dockerfile好吗?还是我应该做些不同的事?
发布于 2021-04-14 01:14:13
对我来说,对形象结构进行测试是毫无意义的。但是,您可以做的是在映像完成后运行测试。在您的管道中,应该有这样的东西:
example)
G 211
https://stackoverflow.com/questions/67088512
复制相似问题