Откуда docker берет worker, если он не указан в файле compose (он был раньше, но был удален, а docker все равно извлекает его)
Я хочу запустить приложение из docker, возникла проблема с тем, что worker_1 подключается к localhost, но в env был указан другой адрес
.env
DATABASE_URL=postgres://db_user:db_password@db/db_name
#DATABASE_URL=postgres://postgres:123@127.0.0.1/olx-killer
# Redis
#REDIS_URL=redis://localhost:6379
REDIS_URL=redis://redis:6379
Я решил закомментировать все, что связано с redis и celery, как в настройках, так и в env, также удалил worker из файла docker compose, но он все равно откуда-то берет его и пытается подключиться к локальному хосту.
settings.py
# Redis
#REDIS_URL = os.getenv('REDIS_URL', 'redis://redis:6379/')
#REDIS_CACHE_URL = f'{REDIS_URL}/1'
# Celery
#CELERY_TIMEZONE = TIME_ZONE
#CELERY_TASK_TRACK_STARTED = True
#CELERY_BROKER_URL = REDIS_URL
#CELERY_RESULT_BACKEND = None
#CELERY_TASK_SERIALIZER = 'json'
#CELERY_RESULT_SERIALIZER = 'json'
#CELERY_ACCEPT_CONTENT = ['json']
docker-compose.yml
volumes:
pg_data:
driver: local
x-base: &base-backend
build: .
volumes:
- .:/code:delegated
depends_on:
- db
services:
backend:
<<: *base-backend
ports:
- "8000:8000"
env_file: .env
environment:
- DJANGO_SETTINGS_MODULE=settings.main
entrypoint: ["/code/entrypoint.sh"]
depends_on:
- db
restart: unless-stopped
db:
image: postgres:13
volumes:
- "pg_data:/var/lib/postgresql/data"
environment:
POSTGRES_DB: db_name
POSTGRES_USER: db_user
POSTGRES_PASSWORD: db_password
ports:
- "5432:5432"
restart: unless-stopped
Обратная связь
Я попытался удалить все изображения
docker-compose down --volumes --remove-orphans
docker system prune -a --volumes
но это не работает.
Позвольте мне помочь вам найти проблему: В опубликованном вами отчете о результатах отслеживания говорится, что worker_1 продолжает работать даже после того, как вы удалили его из своего файла docker-compose.yml.
У вас есть несколько файлов, кроме docker-compose? может быть, один для разработки, а другой для производства?
Может быть, что-то есть в том, чтобы entrypoint.sh поджаривать сельдерей?
Проблема была решена путем переустановки docker и перезагрузки компьютера