我有一个像这样的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容器中运行。
如果我的本地机器上的测试通过,并不意味着它们也会在Docker容器中通过。
假设我在代码中添加了一个使用chromedriver或ffmpeg二进制文件的功能,该二进制文件存在于我的系统中,因此测试将在我的系统中通过。
但是,假设我忘记在Dockerfile中安装这些依赖项,则Docker构建将失败(因为测试正在构建期间运行)
我正在尝试做什么的标准方法是什么?
我的Dockerfile好吗?还是我应该采取其他措施?