배포 후 "An error occurred in the Server Components render" 에러

버건디·2024년 1월 30일
0

CI/CD

목록 보기
2/2
post-thumbnail

Next.js 를 ec2에 배포한 후에

이런 에러가 발생했다.

처음에는 뭐가 문제인가 싶어서 api 콜하는 부분도 다 지워주고 다시 배포해도 똑같았다.

에러 로그를 확인해보니

백엔드 url 관련된 환경변수 값을 제대로 읽지 못하는 것이었다.

그렇다면 이 환경 변수 값을 어떻게 주입해줄수 있을까 ?

- main.yml

          build-args: |
            MYSQL_HOST=${{ secrets.MYSQL_HOST }}
            MYSQL_DATABASE=${{ secrets.MYSQL_DATABASE }}
            MYSQL_USER=${{ secrets.MYSQL_USER }}
            MYSQL_ROOT_PASSWORD=${{ secrets.MYSQL_ROOT_PASSWORD }}
            MYSQL_PORT=${{ secrets.MYSQL_PORT }}

- Dockerfile


ARG MYSQL_HOST

ARG MYSQL_DATABASE

ARG MYSQL_USER

ARG MYSQL_ROOT_PASSWORD

ARG MYSQL_PORT

ENV MYSQL_HOST=$MYSQL_HOST

ENV MYSQL_DATABASE=$MYSQL_DATABASE

ENV MYSQL_USER=$MYSQL_USER

ENV MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD

ENV MYSQL_PORT=$MYSQL_PORT

github actions내에서 빌드시 변수들로 넣어주고,

해당 Dockerfile에서 해당 값을 환경변수로 받아주었다.

근데 지금 이거 말고도 환경변수가 많은데, 이렇게 해주는게 맞나 싶다.

그냥 Dockerfile 자체내에서 env 폴더자체를 인식시켜주면 될것 같긴한데, 일단 해결을 했기때문에 기록해놓는다.

후에 아예 환경변수 폴더 자체를 주입해서 재배포 해보아야겠다.

profile
https://brgndy.me/ 로 옮기는 중입니다 :)

0개의 댓글