所以我有此设置,在码头容器中,我需要运行Python库测试套件(为我的公司设计),在我的测试套件中为我们的Redis Connector,创建一个 locaclhost:6379
redis服务器被拒绝。
redis.exceptions.connectionError:错误111连接到localhost:6379。连接拒绝。
test_redis.py
在带有nose
的开放环境中通过,但在连续集成中失败(在Docker中)。
Docker是否会阻止所有localhost
服务或我使用错误的方法?
设置
ubuntu 17.04
Docker版本1.12.6,构建78D1802
dockerfile:
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。修复程序是在我的测试套件中使用模拟对重复。