Как мне подключиться к redis из Python в конвейере gitlab? - PullRequest
0 голосов
/ 25 июня 2019

Следуя инструкциям по адресу: https://docs.gitlab.com/ce/ci/services/redis.html Я добавил

services:
  - redis:latest

в мой файл .gitlab-ci.yml и изменил на Redis Connect Call на:

redis.StrictRedis(host='redis', port=6379, db=0)

Я получаю ошибку:

/usr/local/lib/python2.7/site-packages/redis/client.py:772: in execute_command
    connection = pool.get_connection(command_name, **options)
/usr/local/lib/python2.7/site-packages/redis/connection.py:994: in get_connection
    connection.connect()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Connection<host=redis,port=6379,db=0>

    def connect(self):
        "Connects to the Redis server if not already connected"
        if self._sock:
            return
        try:
            sock = self._connect()
        except socket.timeout:
            raise TimeoutError("Timeout connecting to server")
        except socket.error:
            e = sys.exc_info()[1]
>           raise ConnectionError(self._error_message(e))
E           ConnectionError: Error -2 connecting to redis:6379. Name or service not known.

1 Ответ

0 голосов
/ 29 июня 2019

Оказывается, это было так же просто, как поместить декларацию сервисов в каждую задачу, например:

py27:
  stage: run
  image: python:2.7
  script:
    - mkdir -p build/coverage
    - pip install -r requirements.txt
    - pytest --color=no --verbose --ignore=almanac/migrations --cov=almanac --cov-config=.coveragerc tests
    - cp .coverage build/coverage/py27.coverage
  services:                                     # <===== here ========
    - redis:latest
  artifacts:
    paths:
      - build/coverage/*.coverage
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...