Docker 로 스벨트와 스프링을 배포를 하다가.. 저런 에러가 발생했다.

난 처음에는 Docker 문제가 아닌 서버의 방화벽 문제인가 하다가.. 지인의 권고대로

서버자체에서 해당 Docker로 배포한 스벨트에 접근을 못하고 있는 것 같다는 얘기를 듣고..

시도해보았다.

wget localhost:3000 // 여기서 localhost는 Docker로 배포한 스벨트의 url 임

저렇게해보니 정말 접근이 안되더라..

여기저기 둘러보니 나는 스벨트를 배포할때 vite를 사용해서 npm run preview로 배포하고 있었다.

DockerFile(변경전)

... 생략

# 프로그램 실행
CMD ["npm","run","preview"]

그런데, 저렇게 배포를 하면 localhost도, 127.0.0.1도 아닌 0.0.0.0 으로 배포한다고 한다..(윙..?)

그래서 해결방법은 이것저것 많았지만, 가장 간단하면서도 나에게 쉬운방법은 위 코드를 일부만 변경하면 된다.

DockerFile(변경후)

... 생략

# 프로그램 실행
CMD ["npm","run","preview","--", "--host"]
 

저렇게 하니 127.0.0.1, localhost 도 같이 개방된다.

지난 시간의 연속이다.

하.. npm 버전 관리도 안해서 분명 설치를 했는 데 모듈을 찾지도 못한다.

구글링을 해보니 웹팩에러라고 한다.

해결법을 작성한다.

* next.config.js 수정

 eslint: {
    dirs: ['comp', 'contexts', 'lib', 'pages', 'styles'],
    ignoreDuringBuilds: true,
  },
  webpack(config, options) {
    if (!options.isServer) {
      config.resolve.fallback.fs = false
             config.resolve.fallback.dns = false
             config.resolve.fallback.net = false
             config.resolve.fallback.tls = false
             config.resolve.fallback["pg-native"] = false
      // config.node = {
      //     dns: 'empty',
      //     net: 'empty',
      //     fs: 'empty',
      //     tls: 'empty',
      //     "pg-native": 'empty'
      // };
  }

    return config
  }

이건 환경에 따라 다르니 통상적으로

Next.js 에서는 next.config.js 에서 처리해준다고 생각하자 !



+ Recent posts