B와 C앱을 각각 도커 이미지로 만들어, docker compose를 활용해 배포하여 컨테이너간 통신이 용이하도록 할 것이다.

nodeJS dockerizing

<aside> 💡 참고자료 nodeJS Doc

</aside>

각 앱을 도커이미지로 만들어 실행시켜 로컬에서 접속해보자.

공식문서에 따라 앱을 이미지화하고 실행시켜봤다. 그런데 이게 웬걸? 정성스럽게 만든 Bapp 이 실행이 안된다!

node:internal/fs/utils:345
    throw err;
    ^

Error: ENOENT: no such file or directory, open './access.log'
    at Object.openSync (node:fs:585:3)
    at Object.readFileSync (node:fs:453:35)
    at StatWatcher.<anonymous> (/usr/src/app/watchFile.js:9:22)
    at StatWatcher.emit (node:events:527:28)
    at StatWatcher.onchange (node:internal/fs/watchers:89:8) {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path: './access.log'
}

에러 메시지를 보니, access.log 파일을 찾을 수 없다는 것이다. 그것은 EC2에 실행되고 있는 웹서버에 있다! 환경변수 처리를 해주자.


작전변경

컨테이너로 B 앱을 실행시키면, access_log 파일을 참조할 수 없다!! 추후 진행되는 작업에서 도커라이징을 진행하자.