【问题标题】:Redis python cannot create local server within DockerRedis python无法在Docker中创建本地服务器
【发布时间】:2018-02-28 05:07:13
【问题描述】:

所以我有这个设置,在 Docker 容器中我需要运行 python 库测试套件(为我的公司设计),在我的 Redis 连接器的测试套件中,locaclhost:6379 redis 服务器的创建被拒绝。

redis.exceptions.ConnectionError:连接到 localhost:6379 时出现错误 111。连接被拒绝。

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 构建命令:

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"

【问题讨论】:

    标签: python docker redis continuous-integration


    【解决方案1】:

    这个问题最终解决起来相当简单。事实上,我的 docker 镜像缺少 redis-server 工具,并且在 :6379 上没有提供任何内容。解决方法是在我的测试套件中使用模拟 redis-py。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-25
      • 1970-01-01
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多