인프런 커뮤니티 질문&답변

honge7694님의 프로필 이미지

작성한 질문수

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

AWS VM에서 Docker Swarm을 통한 서비스 운영

도커 컨테이너 내용 수정

작성

·

463

·

수정됨

0

안녕하세요 강사님! 파이썬 3.10 이상인 상태로 배포를 하려합니다! 배포를 하는 도중

AttributeError: module 'collections' has no attribute 'Callable'

가 발생하여 보니 pydenticon 에러였습니다.

이런 경우는 컨테이너 안에서 수정을 해야할 것 같아서

docker run -it <이미지 이름> /bin/bash

으로 수정 후 docker commit을 진행했습니다.하지만 이 경우, 문제가 생기는데

 docker run --rm --publish 9000:8000 -it <이미지이름> sh

를 실행하여, python3 manage.py runserver 0.0.0.0:8000 을 직접 실행해줘야만 하는 번거로움이 있었습니다.
혹시 이를 해결하기 위한 방법이 있는지 알고싶습니다.

감사합니다.

답변 1

0

이진석님의 프로필 이미지
이진석
지식공유자

안녕하세요.

유사 질문이 있었는 데요. 아래의 질답을 참고해보시겠어요?

AttributeError: module 'collections' has no attribute 'Callable' 에러 처리 방법 - 인프런 | 질문 & 답변 (inflearn.com)

참고해보시고, 댓글 부탁드립니다.

화이팅입니다. :-)

honge7694님의 프로필 이미지
honge7694
질문자

감사합니다!
collections 에러는 해결했는데, 이미지로 만든 후, 컨테이너 실행 중에 나타나서 질문 드립니다. 컨테이너 자체를 수정 후에 docker commit <컨테이너ID>하여 이미지로 다시 만들었는데 그 후에는 컨테이너가 실행되면 바로 종료됩니다..

이진석님의 프로필 이미지
이진석
지식공유자

굳이 docker commit을 하시기보다, 소스코드 원본에서 변경을 하시는 것이 변경내역 관리를 일원화하실 수 있으실 듯 합니다.

--

docker run -it <이미지 이름> /bin/bash 명령 시에 기존 CMD가 무시되고 /bin/bash로 실행되어, docker commit 후에 다시 run할 때 CMD가 /bi/bash로 실행된 듯 보입니다.

docker run 시에는 /bin/bash 를 붙이지마시고 컨테이너를 띄워두신 후에
다른 터미널에서 docker exec 명령으로 앞선 컨테이너에 붙어서 작업을 하신 후에
docker commit을 하시면 CMD가 변경되지 않으니 생각하신 대로 동작하실 듯 합니다.

살펴보시고 댓글 남겨주세요. :-)