[Celery] Docker Container exited with code 247 when passing on image data with celery task

일단 해볼게·2022년 10월 5일
0

celery task 함수 파라미터에 이미지를 넣고 실행시키면 exited with code 247 오류가 발생했다. 처음에는 파라미터로 받아온 이미지값을 바로 이용하려 했으나 celery container가 종료되는 현상이 반복됐다. 해결법을 찾아보니 docker container의 메모리를 늘리라고 했지만 해결되지 않았다.
찾은 방법

해결방법

task 함수 파라미터에 이미지를 넣지 말고 함수 내에서 S3 bucket에 있는 이미지를 가져왔다. 로컬에 이미지를 직접 다운받지 않고 byte 형식으로 변수에 가져와 이용했다.

## 예시코드
s3 = s3_connection() # S3 연결
buf = io.BytesIO() # byte로 변환
s3.download_fileobj(Bucket=AWS_STORAGE_BUCKET_NAME, Key=f'{email}/origin/{uuid}.jpg', Fileobj=buf)

이미지 뿐만 아니라 대용량 파일을 파라미터에 직접적으로 넘기지 말자.

참고

https://stackoverflow.com/questions/66785929/docker-container-exited-with-code-247-when-getting-data-from-gcp
https://stackoverflow.com/questions/9560611/passing-an-image-to-a-celery-task

profile
시도하고 More Do하는 백엔드 개발자입니다.

0개의 댓글