Q&A

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

aws 컨테이너 실행부분 문제입니다

3 years, 5 months ago

dntjdgs dntjdgs

책 p.610에  sudo docker-compose up -d --build 를 진행하던중

이러한 에러가 뜹니다 

어떻게 해결가능할까요??


dntjdgs
dntjdgs   3 years, 5 months ago

선생님 글 참조해서 거의 다했는데 aws 서버 인증 sudo ./init-letsencrypt.sh 에서 이러한 에러가 납니다

도메인 주소도 혹시 틀렸나해서 보고했는데 딱히 틀리지는 않았더라구요...

init-letsencrypt.sh 파일을 그냥 aws 서버 터미널에서 만들었는데 이게 문제가 되는지 도 궁금합니다

Updated: May 30, 2021, 11:05 p.m.

dntjdgs
dntjdgs   3 years, 5 months ago

인터넷 뒤지다가 sudo apt-get install python3 python3-pip ipython3 build-essential python-dev python3-dev

이거 쳐보고 해보라길래 했더니 저 에러코드밑에 

이런 에러코드가 하나 더 생겼습니다...ㅠㅠ

Updated: May 19, 2021, 8:14 a.m.

taegon
taegon   3 years, 5 months ago

안녕하세요.

현재 작업중인 docker-compose.yml 파일과 Dockerfile를 공유해 주시면 도움을 드리는 데 조금 더 수월할 수 있습니다. 윈도우에서 작업하신 Dockerfile를 그대로 가져와서 쓰시면 새롭게 문제가 생기진 않았을텐데, 문제가 생기는 걸로 봐서는 이미지 이름이 잘못 기입된 것은 아닐까 싶습니다.

아마존으로 옮겨서 작업을 시작한 것 같으시니, 책과는 조금 다르지만, 대문에 적어둔 아래 글을 참조해서 작업하시면, 문제가 조금이나 덜 부딪히실 것 같습니다.

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

책과는 다음과 같은 부분에서 다릅니다.
- 호스트OS: 우분투 대신 aws linux2
- Dockerfile: python-alpine 대신 python-slim-buster

이러한 설정은 작업하신 장고 파일과는 무관하고, 배포하는 과정에서 다소 차이가 있으나, 더 빠르고 문제 없이 배포가 가능한 설정이라고 생각되어 안내드립니다.

고맙습니다.



Updated: May 19, 2021, 12:18 p.m.

dntjdgs
dntjdgs   3 years, 5 months ago

일단 저기 링크로 주신 명령어와 aws linux2로 해서 os를 만들고 설치해야될 부분을 다설치한거 같은데

dockerfile도 수정했습니다

그럼 p.610에서 컨테이너 실행하기 부분부터는 책대로 하면 되는겁니까??

계속 뭔갈 찾을수 없다하는데...

링크로 주신부분 설치할때는 그냥 터미널 키고 github 폴더 만들어서 do_it_django로 가기전에

1~7번 다치고 시작하였습니다

1번부터 7번까지 실행한거 첨부합니다



7번째에 fail이 뜹니다...

Updated: May 20, 2021, 2:26 a.m.

taegon
taegon   3 years, 5 months ago

안녕하세요.

정말 예상치 못한 에러를 많이 발견하시네요. ^^;

7번이 에러나는 건, 이미 정상적으로 7번 작업을 수행하셨고, 해당 파일을 다시 만드려고 하니 에러가 발생하는 것입니다. 제가 쓴 글에서 명령어를 그대로 카피해서 붙이셨으면 문제 없이 실행이 되어야 할텐데요. 참 이상하네요.

5번 작업은 docker-compose 라는 파일을 다운 받는 작업인데, 정상적으로 다운로드가 된 것으로 보입니다. 6번 작업은 docker-compose가 실행될 수 있도록 실행명령을 주는 명령어입니다. 7번은 만약 PATH에서 찾을 수 없는 경우를 대비해서, PATH에 포함된 디렉토리 (/usr/bin/)으로 심볼릭 링크를 만들어주는 과정입니다.

이러한 과정에서 달리 문제가 생길 여지가 없는데, 파일명을 찾지 못한다는 게 이상하네요. 현재 보신 에러는 docker-compose라는 명령어를 찾을 수가 없다는 에러메시지입니다. 아래 스크린샷처럼 모두 실행하셨으면, 문제가 없어야 합니다. 혹시 PATH를 수정하여 명령어를 검색하는 PATH가 달라졌다면 해당 리스트 안에서 파일명을 찾을 수 없긴 합니다. 혹은 7단계에서 링크가 잘못 설정되면, 심볼릭 링크가 다른 경로로 잡히면서 문제가 될 수 있습니다.

왜 이런 상황이 발생하는 지 이해가 가지 않습니다만, 문제 해결을 위해서 몇가지 테스트 부탁드립니다.

1. "echo $PATH" 이렇게 타이핑했을 때, 경로를 적어주세요. 제가 방금 만든 aws linux 2에서는 이렇게 나옵니다.
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin

2. "/usr/bin/docker-compose"를 타이핑 했을 때, 파일이 실행되는 지 한번 봐주세요.

3. "sudo ls -l /usr/bin/docker-compose"를 타이핑해서 해당 명령이 정확하게 프로그램과 연결이 되었는지 확인해주세요. 아래와 같이 링크가 되어야 합니다.
lrwxrwxrwx 1 root root 29 May 20 02:29 /usr/bin/docker-compose -> /usr/local/bin/docker-compose

가장 의심이 가는 상황은 7번 과정에서 오타가 포함되어 링크가 잘못 걸렸을 가능성이 있습니다. 스크린샷에서는 7번의 단계가 정확히 타이핑되었으나, 이미 타겟이 되는 파일이 만들어져있기 때문에 덮어쓰기를 하지 않고 있습니다. 스크린샷을 찍긴 전에 처음 작업하실 때, 심볼릭 링크가 만약 잘못 생성되었다면, 현재처럼 파일을 찾지 못한다고 에러가 날 수 있습니다. 만약 이런 경우에는 "sudo rm /usr/bin/docker-compose"로 타겟이 되는 심볼릭 링크를 지우시고, 다시 링크를 설정(7번 단계)하시면 됩니다.

확인해보시고, 여전히 문제가 계속되면, 다시 글 남겨주세요.

Updated: May 20, 2021, 11:33 a.m.

dntjdgs
dntjdgs   3 years, 5 months ago

1.2.3 번 순서대로 한 결과 입니다 

2번에서 실행이 잘안되는 느낌인데 확인 부탁드립니다

1,3 번은 맞게 나오는거 같은데....


Updated: May 21, 2021, 1:07 a.m.

taegon
taegon   3 years, 5 months ago

2번도 저렇게 표시되면 제대로 동작하는 모습입니다.

2번이 실행되고, 1번처럼 PATH가 잘 잡혀 있는데, "docker-compose"라고 타이핑하면 에러가 난다는 말씀이신거죠? 타이핑하면 여전히, "-bash: docker-compose: commnad not found"라고 에러메시지가 나오는 것이구요?

정말 이상하네요. 일단은 불편하시더라도,

docker-compose 라고 책에 나와있는 부분을 "/usr/bin/docker-compose" 라고 바꿔서 타이핑하시면, 실행은 될 것 같습니다.

지금 스크린샷 보내주신 상황에서는 "docker-compose"라고 명령어를 실행하면, 분명 작동을 해야할텐데, 현재 제가 가진 단서로는 한계가 있네요. 저 PATH에 설정된 경로마다 docker-compose라는 파일이 있는지 체크해보는 방식으로 검색을 해서, 우선순위가 있는 PATH에 잘못걸린 심볼릭 링크가 있다면, 동일한 현상이 발생할 수는 있을 것 같기도 하네요.

제가 독자님의 서버에 접속할 수 있으면, 훨씬 수월하게 테스트해볼 수 있는데, 그것도 여의치가 않아서 어떻게 도와드려야 할지 난감하네요.

혹시 다른 단서가 나오면 다시 알려주세요.

고맙습니다.

Updated: May 22, 2021, 1:59 p.m.

dntjdgs
dntjdgs   3 years, 5 months ago

이제 터미널은 잘 작동하는데 고정 ip를 홈페이지 주소로 치면 bad request(400)가 나옵니다

머가 문제일까요??


Updated: May 23, 2021, 2:05 p.m.

taegon
taegon   3 years, 5 months ago

아 이제 잘 작동하나요? 뭐가 문제였을까요? 문제가 발생되었던 상황과 해결법을 같이 공유해주시면, 다른 독자님들도 도움을 받으실 수 있을 것 같습니다.


400번 오류가 나는 부분은 웹서버인 nginx가 작동되고 있고, 장고쪽에서 정상적으로 결과를 주고 있지 못하고 있는 상태로 보입니다.

allow_host 에 고정 아이피가 추가되지 않았을 수도 있고, aws로 옮기면서, 데이터베이스를 새로 만들지 않아서 (makemigrations, migrate 등)일수도 있습니다.

debug 옵션을 다시 1로 돌려서 디버그 모드가 활성된 상태에서 컨테이너를 띄우시면, 에러메시지를 확인하실 수 있을겁니다.

확인해보시고 문제가 계속 되시면 다시 알려주세요.

고맙습니다.

Updated: May 25, 2021, 12:07 p.m.

dntjdgs
dntjdgs   3 years, 5 months ago

/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin

이 부분에서 /usr/sbin 이게 세개정도 있어서

"sudo rm /usr/bin/docker-compose" 이후 다시 7번 진행하니까 해결됬습니다


Updated: May 26, 2021, 2:05 a.m.

taegon
taegon   3 years, 5 months ago

경험을 공유해주셔서 감사합니다.

다른 문제들도 앞서 말씀드린 방법을 참조하여, 진행해보시고, 어려움이 있으시면 다시 글 남겨주세요.

고맙습니다.

Updated: May 26, 2021, 9:38 a.m.

dntjdgs
dntjdgs   3 years, 5 months ago

책에 623페이지 하던중 이러한 에러가 뜹니다 이건 어떻게 해결해야 할까요ㅠㅠ

Updated: May 26, 2021, 6:10 p.m.

taegon
taegon   3 years, 5 months ago

안녕하세요.

아마 yaml 파일, 즉, docker-compose.yml 파일이 규격에 맞지 않아서 생기는 오류로 보입니다. 스크린샷으로 올리신 것이 파일 전체인지, vi를 한 후 일부 인지 알 수가 없어서 확답을 못드리겠지만, 일부 값이 비어있어서 에러가 나는 것으로 보입니다.

GitHub로 작업 내용을 공유해주시면, 좀 더 수월하게 도움을 드릴 수 있을 것 같습니다.

고맙습니다.

Updated: May 28, 2021, 3:54 a.m.

dntjdgs
dntjdgs   3 years, 5 months ago

sudo docker-compose build nginx 부분은 yml 파일에 탭으로 공백을 줘서 생긴거더군요

다지우고 스페이스로 해결하니 되었습니다

그런데 letsencrypt 인증서 받아오는 부분에서 curl -L https://raw.githubusercontent.com/wmnnd/nginx-certbot/main/init-letsencrypt.sh > init-letsencrypt.sh 하고 나서

init-letsencrypt.sh 파일 생긴거 확인하고 nano init-letsencrypt.sh 로 파일 들어가서 시키는대로 코드를 수정하려 하니까 다음과 같은에러가 뜹니다 

Updated: May 28, 2021, 11:36 p.m.

taegon
taegon   3 years, 5 months ago

안녕하세요. 

해당 문제는 대문 글에서 다루었는데요. 다음 글을 참조해 주시면 좋겠습니다. 불편함을 드려 죄송합니다.

https://doitdjango.com/blog/3/

고맙습니다.

Updated: May 29, 2021, 12:36 p.m.

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