Infra/CI-CD
-
배포 - WORKING DIRECTRORY 명시해 주기Infra/CI-CD 2022. 12. 25. 17:49
Dockerfile의 WORKDIR 명령어 # Create app directory WORKDIR /usr/src/app Docker image는 해당 image안에서 어플리케이션 소스가 복사될 디렉토리를 생성하는 것이다. 그리고 생성 된 디렉토리는 어플리케이션의 working 디렉토리가 된다. 왜 따로 working 디렉토리가 있어야 할까? 현재 Node 이미지 속의 root 디렉토리에는 home,bin, dev 파일등이 있다. ls 명령어를 사용해서 node 안의 디렉토리 custom으로 build한 image의 root 디렉토리 기본으로 제공되는 node image와 다르게 node를 이용해서 server를 구축하기위한 여타 디렉토리와 file들이 들어 있는 것을 확인 할 수 있다. 즉 디렉토리와 ..
-
배포 - 생성한 이미지로 app 실행 시 접근이 안되는 이유(포트 맵핑)Infra/CI-CD 2022. 12. 25. 16:59
현재까지 컨테이너를 실행하기 위해 사용한 명령어 앞으로 컨테이너를 실행하기 위해 사용 할 명령어 새롭게 추가된 부분은 무엇을 위한 부분인가? 컨테이너 내부의 네트워트와 외부에 네트워크를 연결시켜 주어야 한다. 위와 같이 -p 옵션을 통해 Dcoker Container의 내부 포트와 외부 포트를 연결시켜준 뒤에 Docker Container을 띄우면 위 그림과 같이 도커 내부에 띄어진 node 서버에 외부에 브라우저를 통해 접근할 수 있는 것을 확인 할 수 있다. [출처 - https://www.inflearn.com/course/%EB%94%B0%EB%9D%BC%ED%95%98%EB%A9%B0-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EB%8F%84%EC%BB%A4-ci/dashboard]
-
배포 - Dockerfile를 이용해서 Docker image buildInfra/CI-CD 2022. 12. 25. 15:25
package.json이 없다고 나오는 이유 (dockerfile copy) 앞으로 만들어야 할 dockerfile 완성본을 보면 COPY라는 것이 존재한다. 왜 이 COPY가 필요한지 package.json문제를 해결하면 서 알아본다. Dockerfile로 이미지를 만들때 Node 베이스 이미지를 사용을 해서 임시 컨테이너를 만든 다음에 임시 컨테이너로 실제 사용을 할 이미지를 만드는 것인데 Node 베이스 이미지를 임시컨테이너로 만들때 파일 스냅샷들이 존재한다. home, bin, dev 디렉토리 같이 많은 것들이 존재한다. 그래서 베이스 이미지에서 파일 스냅샷들을 임시컨테이너에 하드디스크에 먼저 넣어준다. 그 다음 FROM 명령어에 따라 컨테이너에 node:10 이미지를 먼저 넣는다. 그리고 그다음..
-
배포 - Dockerfile 작성하기Infra/CI-CD 2022. 12. 25. 14:23
Dockerfile 작성하기 Node.js 앱을 도커 환경에서 실행하려면 먼저 이미지를 생성하고 그 이미지를 이용해서 컨테이너를 실행한 후 그 컨테이너 안에서 Node.js앱을 실행해야 한다. 그래서 그 이미지를 작성하려면 Dockerfile을 먼저 작성해야 한다. 즉 Dockerfile은 도커 image를 만들기위한 지시서다. Dockerfile 명령어 Dockerfile에 적힌 명령어는 도커 서버에게 무엇을 하라고 알려주는 것이다. # 베이스 이미지를 명시해준다. FROM baseImage # 추가적으로 필요한 파일들을 다운로드 받는다. RUN command # 컨테이너 시작시 실행 될 명령어를 명시해준다. CMD ["executable"] FROM 이미지 생성시 기반이 되는 이미지 레이어이다. : ..
-
배포 - 도커를 통해 실행 시킬 간단한 Node.js 서버 만들기Infra/CI-CD 2022. 12. 25. 13:58
NodeJS공식 홈페이지에서 도커를 이용하여 NodeJS를 이용하는 예시부분을 사용하여 도커를 실전에 도입하는 연습을 한다. https://nodejs.org/ko/docs/guides/nodejs-docker-webapp/ Node.js 웹 앱의 도커라이징 | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org - Dockerfile을 어떤식으로 작성하는지 중점적으로 다룬다. FROM node:10 WORKDIR /usr/src/app COPY package*.json ./ RUN npm install COPY .. EXPOSE 8080 CMD["node","server.js"] 도커 컨테이..