-
카테고리
-
세부 분야
웹 개발
-
해결 여부
미해결
docker 컨테이너 환경설정 문제
24.03.03 21:00 작성 조회수 341
0
docker 컨테이너를 바로 생성하지 않고 따로 실행하는 걸로 했을때 아래와 같은 실행화면까지 나오고 잠시후에 에러메세지가 뜨는데 여기서 더이상 방법을 못찾아서 헤매고 있습니다 ㅎㅎ 윈도우라서 그런건 아니겠죠?
[I 240227 01:42:46 command:177] Registered tasks:
['celery.accumulate',
'celery.backend_cleanup',
'celery.chain',
'celery.chord',
'celery.chord_unlock',
'celery.chunks',
'celery.group',
'celery.map',
'celery.starmap']
[E 240227 01:42:54 events:191] Failed to capture events: 'Error 11001 connecting to redis:6379. getaddrinfo failed.', trying again in 2 seconds.
[E 240227 01:42:54 base_events:1771] Future exception was never retrieved
따로 실행하는 이유는 처음에 docker-compose up --build -d 해서 생성할때 flower에서
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "flower": executable file not found in $PATH: unknown
에러가 발생해서 찾아보니 따로 실행하면 된다고 그래서 현재 따로 실행중에있습니다.
version: '3'
services:
app:
build: ./python_app
volumes:
- ./python_app:/usr/src/app
ports:
- "8000:8000" # 필요한 경우, 앱이 외부에 노출할 포트를 지정
redis:
image: "redis:alpine"
celery_worker:
build: ./python_app
command: celery -A tasks worker --loglevel=info
volumes:
- ./python_app:/usr/src/app
depends_on:
- redis
celery_beat:
build: ./python_app
command: celery -A tasks beat --loglevel=info
volumes:
- ./python_app:/usr/src/app
depends_on:
- redis
flower:
image: mher/flower
command: flower --broker=redis://redis:6379/0 --port=5555
ports:
- "5555:5555"
depends_on:
- redis
답변을 작성해보세요.
0
미쿡엔지니어
지식공유자2024.03.04
안녕하세요 chicmania님,
다음의 에러는 docker에서 컨테이너를 만들 때 flower
라는 커맨드를 flower 컨테이너에서 찾지 못해서 생기는 에러입니다. flower 서비스가 redis만 필요로 하니 일단 redis와 flower만 빼고 나머지는 주석을 달아 실행을 미루세요
Error response from daemon: failed to create task for container:
failed to create shim task: OCI runtime create failed: runc create failed:
unable to start container process: exec: "flower": executable file not found
in $PATH: unknown
그리고 다음의 에러는 redis를 그 flower컨테이너에서 액세스를 할 수가 없어서 그런 겁니다. redis가 같은 네트워크에 있다면 아무런 문제가 없어 보이는데, 제 생각에는 redis
가 서비스를 시작을 안해서 그런 것 같습니다. 이런 경우에는 일단 redis가 잘 작동하는지, 나머지는 다 주석을 하시고, redis 부분만 한번 실행해보세요. redis가 잘 실행 된다면 그 다음에 flower 서비스부분 주석을 제거하고 실행해보세요.
[E 240227 01:42:54 events:191] Failed to capture events: 'Error 11001 connecting to redis:6379. getaddrinfo failed.', trying again in 2 seconds.
[E 240227 01:42:54 base_events:1771] Future exception was never retrieved
혹시 docker ps
명령어를 사용하셔서, 혹시 다른 redis
가 벌써 돌고 있지는 않은지 확인하시고, 뭔가 다른 것이 있다면docker kill
을 사용해서 다 지우시고 실행해보세요.
마지막으로 compose를 설명해 드리자면 ...
flower:
image: mher/flower
command: flower --broker=redis://redis:6379/0 --port=5555 <===== 여기 redis:6379가 redis라는 서비스 이름으로 6379포트로 연결하라라는 뜻인데, redis가 없다면 연결을 못하고 위의 에러가 납니다.
ports:
- "5555:5555"
depends_on: <====== redis를 시작한 후에 시작을 하라라는 뜻입니다.
- redis
이것도 아니라면 제가 현재 chicmania님의 랩탑을 보지 않아서 안타깝게도 알 수가 없습니다.
도움이 되어서 해결이 되었으면 좋겠네요.
답변 1