본문 바로가기
프로젝트/낙낙(KnockKnock)

배포를 해볼까-5

by 티코딩 2023. 7. 21.

저번에 다한줄 알았는데,,

저번 포스트마지막 사진에 보면 status 가 exited가된걸 확인할 수 있다.

실패한거다..

docker logs {컨테이너명}
해서 보니, 내 환경변수였던 {JWT_SECRET_KEY}를 못찾아서 오류가 났던 것이었다.

환경변수.. 어떻게 넣을까?

touch /home/ec2-user/app.env

EC2 인스턴스에서 app.env라는 파일을 하나 만들어준다.

 

그다음, app.env 파일을 편집기로 수정한다. 나는 nano를 썼다.

nano /home/ec2-user/app.env

app.env파일에

JWT_SECRET_KEY=your_secret_key_here

이렇게하고 저장한다.

하지만, 이렇게 했을때도 안됐다..

다음방법을 알아보자.

.bashrc 를 nano 편집기를 사용해서 마지막에 환경변수를 집어넣어준다.

nano ~/.bashrc

맨 마지막 줄에

export JWT_SECRET_KEY=jwt.secret.key.value

이렇게 넣고, docker start {컨테이너 아이디}

하고 docker ps 해보면 실행중인 컨테이너가 나온다.
어디한번 해볼까?

...그만 알아보도록 하자

 

다른 방법도 있다.

바로 run할때, 환경변수를 저장한 파일을 함께 지정하는것이다. 그러면 컨테이너 안에서 사용할 수 있을거다..(제발)

나는 위에서 app.env파일을 만들었기 때문에 아래와 같은 명령어를 입력해보자.

docker run -d --env-file env_file.txt your-image-name

그전에 기존 컨테이너를 중지하고 삭제한다.

# 기존 컨테이너를 중지(stop)합니다.
docker stop knockknock

# 기존 컨테이너를 삭제(remove)합니다.
docker rm knockknock

그러면 이렇게 삭제된걸 볼 수 있다.

그리고 이미지도 삭제하고 다시 빌드를 해본다.

이미지 삭제하는 명령어는 docker rmi {이미지명}

dockerfile에

# app.env 파일을 이미지 안에 복사
COPY app.env /app/app.env


이걸 추가하고, 빌드하고 다시 git push하자.

그리고 다시 클론받고, dockerfile이 있는 위치로 가서 build 해본다.

역시 에러!

에러를 보면 app.env 파일을 못찾는다고 한다.

그러면 app.env파일을 dockerfile 이 존재하는 위치에 복사해준다.

그 다음에, 전에 했던대로 build 해주고, run 해준다.

하.지.만.

안된다! 여전히 환경변수를 못 찾는다.

 

찐찐막으로 다시 해보자!!

드디어. 됐다!!!!!!!!!!!!!!!!!!!

docker ps 누르기전에 기도 쎄게했더니 됐다.

방금만든 컨테이너 지우고, 

docker run -d -p 8080:8080 --env-file app.env knockknock

--env-file 옵션을 사용해서 드디어드디어드디어 됐다. 이거 안돼서 요며칠 기분이 다운되어있었는데 기분이매우 좋아졌다.

 

또다시 반전이 일어났다.

docker logs {컨테이너이름}

하면 애플리케이션이 잘 실행된게 확인된다.

하지만. 포스트맨으로 잘 실행되는지 보려고 테스트를 해봤다.

EC2 인스턴스의 퍼블릭 Ipv4 DNS 주소:포트번호 로 api요청을 날렸는데 timed out이 뜬다...

아!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

기분이 좋다가 말았다.

다음 포스팅에 이어서 써보겠다. 제발 해결하고싶다. 미치겠다ㅠㅠ

'프로젝트 > 낙낙(KnockKnock)' 카테고리의 다른 글

배포를 해볼까-7(성공)  (0) 2023.07.24
배포를 해볼까-6  (0) 2023.07.24
배포를 해볼까-4  (0) 2023.07.18
배포를 해볼까-3  (0) 2023.07.17
배포를 해볼까-2  (0) 2023.07.14