Всем привет, хотел спросить. Развернул 2 контейнера в одном питон, во втором redis.Все на одном хосте. C первого пытаюсь получить доступ к redis но коннект не идет. это нужно делать линковку? Просто редис контейнер хотел использовать как общую шину, не хочется во всех остальных контейнерах прописывать линк к нему.
в контейнера редиса
protected-mode no
bind 0.0.0.0 ::
bind 127.0.0.1 ::1
bind * ::1
Также открыл порт 6379
root@e465af48781c:/data# nmap -sT -sU -p- 127.0.0.1
Starting Nmap 7.80 (
https://nmap.org ) at 2022-01-04 12:24 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00032s latency).
Not shown: 131069 closed ports
PORT STATE SERVICE
6379/tcp open redis
docker-compose.yml #redis
version: '3.6'
services:
redis:
image: 'redis_update'
user: root
restart: always
ports:
- 6379:6379
volumes:
- ./conf:/opt/local/bitnami/redis/etc
environment:
- ALLOW_EMPTY_PASSWORD=yes
networks:
- back
networks:
back:
# use a custom driver, with no options
driver: bridge
docker-compose.yml #python
# docker-compose.yml
version: '3.8'
services:
web:
build: .
command: uvicorn app.main:app --host 0.0.0.0 --reload
volumes:
- .:/code
ports:
- 8008:8000
networks:
- back
networks:
back:
# use a custom driver, with no options
driver: bridge
#requirements.txt
asyncpg==0.22.0
fastapi==0.63.0
uvicorn==0.13.4
strawberry-graphql
requests
http3
celery
redis
main.py
import strawberry
import requests
from fastapi import FastAPI
from strawberry.fastapi import GraphQLRouter
import http3
import redis
client = http3.AsyncClient()
r = redis.Redis(
host='redis_redis_1',
port=6379)
app = FastAPI()
@app.get("/")
def read_root():
value = r.get('mykey')
print(value)
return {"Hello": "World2"}