所以我有一个设置,在docker容器中,我需要运行python库测试套件(为我的公司设计),在redis连接器的测试套件中,拒绝创建redis服务器。
redis.exceptions.connectionerror:连接到本地主机时出现错误111:6379。连接被拒绝。locaclhost:6379
在test_redis.py
的开放环境中通过,但在持续集成(Docker内)中失败。
Docker是否阻止所有nose
服务,或者我使用了错误的方法?
安装程序
ubuntu 17.04版
Docker版本1.12.6,内部版本78D1802
文档文件:
FROM continuumio/miniconda3:4.3.14
MAINTAINER ... <...@fifty-five.com>
WORKDIR /app
RUN which conda && which python && which pip && apt update && apt install -y build-essential libblas-dev liblapack-dev libatlas-base-dev gfortran
RUN conda install -y numpy && conda install -y scikit-learn && conda install -y scipy
RUN apt update && apt install -y libmysqlclient-dev
COPY . /app/maids
RUN cd /app/maids/ && pip install -e .
使用makefile build命令:
test_docker_light_py3: #build_datascience_base3
docker run -e GCS_BUCKET=${GCS_BUCKET} -e GCS_BUCKET_TEST=${GCS_BUCKET_TEST} -e TEST_DATASET=${TEST_DATASET} -e TEST_DATASET_2=${TEST_DATASET_2} -e DOC_SSH_HOST=${DOC_SSH_HOST} -e DOC_SSH_PATH=${DOC_SSH_PATH} -v $(shell pwd):/app -i -t "${LOCAL_TEST_IMAGE3}" /bin/bash -c "python --version ; pip freeze ; python -m 'nose' -a '!slow' --nologcapture --nocapture --with-coverage --cover-package=maids --with-timer --timer-top-n 10 tests/*.py"
最佳答案
这个问题最终很容易解决。事实上,我的docker图像缺少redis-server
工具,并且没有提供任何关于:6379的内容。修复方法是在我的测试套件中使用redis py的mock。