Next.js는 외부에서 환경변수를 주입할 때 NEXT_PUBLIC_으로 시작하는 변수명을 사용할 수 있다. (공식문서 참조)
작업중인 애플리케이션에 NEXT_PUBLIC_를 이용해 개발모드를 셋팅하고 있다.
next dev 또는 next build 시에 NEXT_PUBLIC_ENV_MODE를 development, stage, main으로 설정하고 있고 CI/CD는 github workflows를 이용해 docker 이미지를 rancher에 올리는 방식이다.
docker build --build-arg NEXT_PUBLIC_ENV_MODE="stage" -t ${IMAGE} -t ${IMAGE_LATEST} -f .dockerfile .
action yml 에서는 위의 코드로 docker 이미지를 생성하는데 보면 --build-arg 속성을 이용해서 NEXT_PUBLIC_ENV_MODE를 .dockerfile에 전달한다.
RUN yarn install
ARG NEXT_PUBLIC_ENV_MODE
RUN NEXT_PUBLIC_ENV_MODE=$NEXT_PUBLIC_ENV_MODE yarn build
그러면 .dockerfile 에서 위와 같이 전달된 값을 사용해 build에 적용할 수 있다.
$NEXT_PUBLIC_ENV_MODE를 사용하기 전에, ARG NEXT_PUBLIC_ENV_MODE를 선언해 주어야 한다.
참고
반응형
댓글