Q&A

책을 따라하다가 막히는 부분이 있나요?
질문을 남겨주세요.

amzon linux2 docker-compose build up 오류

3 years, 6 months ago

kdhnate222 kdhnate222

안녕하세요. 저자님

계속 질문하게 돼서 죄송스럽네요 ㅠㅠ

우선 우분투로 도커 build up 하는 과정에서 cryptography  이 부분이 에러가 계속 발생하여

다른 분 질문 답변을 참고하여 amazon linux2 로 인스턴스를 만들어서 docker, docker-compose,  까지 설치 했습니다.그리고 권한 추가까지 진행했습니다.

그런데 제가 명령어를 정확히 몰라서 그러는 것인지...(이 부분이 가장 큰 문제라고 봄 , 구글링을 하였으나 도커에 이미지를 pull 해라 하는데 이 부분은 책이랑 달라서 이해가 안됩니다ㅜㅜ) 

 해당 화면처럼 빌드업이 되지 않습니다. ㅠㅠ 어떻게 진행해야 될까요 ㅠㅠ



kdhnate222
kdhnate222   3 years, 6 months ago

그리고 p610 오탈자가 있는 것 같습니다.

AWS Server Terminal 두번째 입력칸

POSTGRES_USER = do_it_django_db_user_prod
POSTGRES_PASSWORD = do_it_django_db_password
POSTGRES_DB = do_it_django

 해당 부분이 POSTGRES => POSTGRE 라고 적혀있습니다.



Updated: May 6, 2021, 11:15 a.m.

taegon
taegon   3 years, 6 months ago

안녕하세요.

우선 오탈자 부분은 알려주신 것을 확인하였습니다. 알려주셔서 감사합니다. 알려주신대로, S가 빠져있네요.

빌드가 되지 않는 부분은 docker-compose를 어떻게 설치하셨는지요? 현재 에러는 sudo로 실행할 때, docker-compose 파일을 찾을 수 없어서 에러가 나는 것입니다.

설치를 다하시고, 권한까지 추가하셨다고 말씀하신 것으로 봐서는 공식 도커 문서를 참조하셨을 것으로 생각이 되는데, 이 경우에는 /usr/local/bin 아래에 설치하게 되고, 경로(PATH)에 포함되어 있기 때문에 sudo를 붙이든 붙이지 않든 문제 없이 실행이 되어야 합니다.

하지만 현재는 접속 계정으로는 docker-compose가 실행이 되는데, sudo로는 해당 파일을 찾을 수 없는 것으로 보이네요. 이 경우에는 아래와 같이 다른 폴더(/usr/bin 혹은 /bin)에 실행파일의 링크를 추가해주시면 될 것 같습니다. 아래 코드는 공식 문서에 안내 되어 있는 내용을 그대로 가져왔습니다. 도움이 되셨길 바라며, 혹시 문제가 계속되면 알려주세요.

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Updated: May 6, 2021, 2:49 p.m.

taegon
taegon   3 years, 6 months ago

안녕하세요.

질문주신 현상에 대해서는 문제가 해결되었다고 하니 다행입니다.

빌드 과정에서 cryptography가 제대로 컴파일되지 않는 현상은 많은 분들이 질문을 주고 계셔서, 제가 시간내서 다시 살펴봐야겠다고 생각하고 있습니다. 

일단은 아래 글들을 살펴보시면 도움이 될 것 같습니다.

https://doitdjango.com/board/qna/26/
https://doitdjango.com/board/qna/42

그리고 혹시 작업환경을 공유해주시면, 제가 다시 한번 테스트 해보도록 하겠습니다.

AWS lightsail에서는 amazon linux2 를 선택하시고, github에 올려놓은 코드로 컴파일하신 것인가요? 이 때 질문 주신 것처럼 컴파일이 안 된 것인지요?

그리고 우분투에서 진행하셨다는 말씀은 어떤 뜻인지요? AWS에서 우분투를 선택하신 것인지요? 아니면, 개인 개발환경으로 우분투를 쓰고 계신것인지요? 사용하신 우분투 버전은 어떻게 되나요?

정보를 조금 더 주시면 다시 살펴보고 회신드리도록 할게요.

고맙습니다.

Updated: May 10, 2021, 2:48 p.m.

taegon
taegon   3 years, 6 months ago

안녕하세요.

공개해주신 저장소를 이용해서 테스트를 해보았습니다.

2가지만 고치시면, 빌드가 문제없이 될 것입니다.

1) Dockerfile에서 기본 이미지를 변경해주세요.
FROM python:3.8.0-alpine -> FROM python:3.8-alpine

해당 이슈는 3.8.0 이미지가 alpine 3.10를 쓰고 있는데, 이 버전의 경우 rust 버전이 낮아서 문제가 발생하더군요. alpine OS 버전을 3.12 이상으로 올리는 것이 쉬운 해결책 중 하나입니다. 3.8.0 대신 3.8를 쓰면, alpine 3.13과 python 3.8.10 버전이 설치됩니다. 시간이 지나면서 마이너버전은 변경될 수 있습니다.

2) requirement.txt 에 "cryptography<=3.2.6"를 추가해 주세요.
다른 독자분이 제시해주셨던 방법인데, 최신 버전인 3.4.7에서는 컴파일이 제대로 진행되지 않았습니다. 그래서 조금 낮은 버전으로 설치하면 문제 없이 진행되는 것을 확인하였습니다. 모든 버전을 확인해보지는 못한 점은 이해바랍니다.

도움이 되셨길 바랍니다. 고맙습니다.

Updated: May 10, 2021, 4:10 p.m.

kdhnate222
kdhnate222   3 years, 6 months ago

AWS lightsail에서는 amazon linux2 를 선택했습니다.

github에 올려놓은 코드로 컴파일 정상적으로 진행했습니다.

그리고 우분투로 진행했을 때는 cryptography<=3.2.6 해당 부분을 제거하고 python:3.8.0-alpine 환경에서  빌드업해서 올라갑니다.  그러나 저부분을 제거해서 그런것인지 create post 기능과 google 로 로그인 시 에러 발생이라고 나오더라구요.

====================================================================

1. FROM python:3.8-alpine 수정

2 .requirement.txt 에 "cryptography<=3.2.6"를 추가 반영했으나 또 여기서  빌드 업 과정해서 맨마지막줄 cryptograyphy 다운로드 이후 설치에서 멈춰버립니다.


Updated: May 11, 2021, 1:40 p.m.

taegon
taegon   3 years, 6 months ago

혹시 문제가 생기는 코드를 깃헙에 업데이트 해주시겠어요? 최근 커밋이 3일 전이어서, 작업하신 파일과 동일한 설정인지 모르겠습니다.

그리고 linux2를 선택하실 때, 리전은 어디로 선택하셨나요? 서울로 선택하셨나요? 제가 테스트할 때 미국 오하이오와 버지니아를 선택했었는데, 리전을 확인해주시면, 리전을 맞춰서 다시 테스트 해보도록 할게요.

cryptography가 설치되는 과정이 약간 느리긴 한데, 멈출 수준까지는 아니었습니다. 물론 $3.5 플랜을 쓰시고, 이미 버스팅 구간의 CPU 리소스를 다 쓰셨다면, 굉장히 느릴 수 있긴 합니다.

앞서 답변을 드릴 때, 말씀드린대로 환경을 구축하고 테스트를 해서, 정상적으로 빌드가 되는 것을 확인하였는데, 여전히 문제가 해결되고 있지 않다고 말씀하시니 안타깝네요.

제가 추가적으로 질문드린 부분들 확인해주시면, 제가 다시 한번 확인해보고 답변드리도록 하겠습니다.

Updated: May 13, 2021, 5:48 a.m.

taegon
taegon   3 years, 6 months ago

코드를 확인해봤고, 왜 제가 테스트할 때는 동작했지만, 독자님 환경에서는 에러가 발생하는지 확인했습니다.

일단 리전이나, 고정ip 문제는 아닌 것 같습니다.

일단 제가 발견한 문제와 해결법은 web 컨테이너를 docker-compose 대신 docker로 빌드를 먼저 한번 해주시면 됩니다. "docker build ."라고 치시면 문제 없이 빌드가 될 것입니다. 이후, docker-compose build 혹은 docker-compose up --build 등을 하시면, 이미 이미지가 빌드되어 있기 때문에, 빌드된 이미지를 이용하여 문제 없이 서비스가 가능합니다.

지난번에 올려주신 코드에 .env.prod 파일(혹은 다른 파일일 수 있습니다)이 빠져있어서, docker-compose가 되지 않아서, 저는 docker build . 으로 빌드를 했었고, 문제가 없었던 것입니다. 오늘 받은 소스코드에는 docker-compose.yml과 관련된 파일을 정상적으로 셋팅을 해두셔서 docker-compose build로 해보았더니, 리전과 상관없이 모두 에러가 나네요.

기본적으로 동일한 작업이라고 생각되는데, docker build .로는 문제가 없는데, docker-compose build 로는 문제가 발생한다는 것이 의아하긴 하네요. 이 부분은 시간을 갖고 조금 더 찾아봐야할 것 같습니다.

일단 독자님이 겪고 있는 상황에서는 docker build . 으로 이미지를 한번 만드시는 과정만 추가하시면, 에러없이 진행할 수 있을 겁니다.

혹시 다른 질문 사항이나 어려움이 있으면, 질문 남겨주세요.

고맙습니다.


Updated: May 14, 2021, 3:16 a.m.

taegon
taegon   3 years, 6 months ago

독자님 여러번 답변을 달게 되어 죄송합니다.

오전에 확인한 방식은 해당 오류를 회피하여 구동할 수 있는데, 초점을 맞추었는데, 조금 더 조사를 해보니 아래 방식이 더 간단하고, 쉬운 방법으로 생각됩니다.

이미 많은 부분을 처리하셨기 때문에, 아래 글에서 최종단계 부분만 따라하시면 되겠습니다.

https://doitdjango.com/blog/4/

혹시 문제가 계속 되시면 다시 글 남겨주세요.

고맙습니다.

Updated: May 14, 2021, 9:23 a.m.

kdhnate222
kdhnate222   3 years, 6 months ago

정말 감사합니다. 위에 남겨주신 방법으로 진행은 하여 빌드업은 완료했으나

제 퍼블릭 ip 접속이 안됐습니다.

https://doitdjango.com/blog/4/ 여기에 남겨주신 방법대로 따라하니 페이지에 접속이 됩니다~!! 

정말 감사합니다ㅠㅠ

Updated: May 14, 2021, 11:06 a.m.

taegon
taegon   3 years, 6 months ago

해결이 잘 되었다고 하니 다행이네요.

홈페이지 만들어놓은 것 보니 멋있던데, 홈페이지 완성되면 자랑해 주세요.

고맙습니다.

Updated: May 14, 2021, 12:04 p.m.

kdhnate222
kdhnate222   3 years, 6 months ago

최근 코드 깃헙에 업데이트 해뒀습니다~!

리전은 서울로 선택했습니다.

그리고 이부분이 영향을 끼칠진 모르겠는데요.

제가 중간 중간 테스트를 하면서 우분투와 리눅스2를 인스턴스 2개를 만들어놓고

고정 ip에 인스턴스 연결해제 와 연결을 반복을 했습니다. 물론 빌드업 중에는 하지 않았구요.

3.5 플랜을 사용하는데요. 터미널을 아예 중지 했다가 재시작을 해보니

이제는 멈추지는 않고 오류가 뜨고 빌드업이 중단 됩니다.



Updated: May 17, 2021, 4:38 p.m.

kdhnate222
kdhnate222   3 years, 6 months ago

안녕하세요 저자님.

해당 문제는 해결됐습니다! 감사합니다

그런데 빌드업 하는 과정에서 cryptography 가 제대로 설치가 안되더라구요 ㅠㅠ

터미널 로그 내용 첨부드려요 ㅠㅠ

그래서 우분투에서 진행 했을경우 cryptography 지운채로 정상적으로 배포가 됩니다..ㅜㅜ

Updated: May 17, 2021, 4:38 p.m.

taegon
taegon   3 years, 6 months ago

cryptograph 관련해서는 제가 글을 조금 수정하여 다시 올렸습니다.

수정된 블로그 글을 따라해 주세요.

https://doitdjango.com/blog/4/

고맙습니다.

Updated: May 18, 2021, 2:07 p.m.

Leave a Comment:
목록보기
Search
  • 자유게시판
  • Q&A