프로젝트를 코딩 후 도커를 사용하여 빌드 및 배포를 해보도록 하겠습니다.
먼저 Docker 를 설치해 주세요.
MacOS 에 Docker Desktop 설치하기 : https://gdpark.tistory.com/195
Windows 에 Docker Desktop 설치하기 : https://gdpark.tistory.com/196
1. 먼저 Nodejs 프로젝트를 VSCODE 를 사용하여 불러옵니다.
2. Dockerfile 을 root 에 생성해 준다.
3. Dockerfile 내에 아래와 같이 작성해 줍니다. 프로젝트 파일 복사, 의존성 패키지 부분을 본인의 프로젝트에 맞게 수정해 줍니다.
# base image 노드12 버전을 사용합니다.
FROM node:12.2.0-alpine
# set working directory 도커 이미지 내에 app 폴더를 만들어 사용합니다.
WORKDIR /app
# add `/app/node_modules/.bin` to $PATH 모듈 폴더경로를 환경설정으로 잡아줍니다.
ENV PATH /app/node_modules/.bin:$PATH
# install and cache app dependencies 프로젝트 파일을 복사하고 의존성 패키지를 설치합니다.
COPY package.json /app/package.json
COPY ecosystem.json /app/ecosystem.json
COPY database.json /app/database.json
COPY server.js /app/server.js
RUN npm install nodemon -g
RUN npm install -g yarn
RUN npm install --silent
RUN npm install react-scripts@3.0.1 -g --silent
RUN npm install mysql --save
RUN npm install pm2 -g
RUN npm install
EXPOSE 3000 포트를 지정합니다.
# start app pm2 패키지를 사용할 때 아래 명령어를 사용합니다.
#CMD ["pm2-runtime","ecosystem.json"]
# start app 지금은 먼저 server.js 파일로 앱을 실행 할 때를 사용합니다.
CMD ["npm", "run", "server"]
4. 프로젝트를 로컬에서 실행해 보고 잘 동작하면 도커 이미지로 만들어보겠습니다. 먼저 프로젝트 해당 폴더에서 터미널을 열어 주시고 docker login 을 사용하여 로그인을 확인합니다.
5. 아래와 같이 docker build -t [이미지 명] [대상경로] 를 입력해 줍니다.
6. docker images 입력하면 생성된 이미지를 확인할 수 있다. 아래처럼 CREATED 시간과 REPOSITORY 및 TAG 로 확인할수 있다.
7. 이제 Docker Hub 로 push 하기 전에 로컬에서 구동을 확인해보자.
docker run -p[input포트]:[container 내부 포트] [REPOSITORYNAME:TAG] 를 입력해 준다.
8. docker ps 명령어를 입력하여 실행중인 images id 를 확인합니다.
9. 위의 CONTAINER ID 를 사용하여 image 의 실행 및 정지를 할 수 있습니다.
10. 브라우저에서 images 서버의 실행을 확인 했으면 docker stop [CONTAINER ID] 를 입력하여 컨테이너를 정지 합니다.
11. 정지 후 docker ps 를 다시 입력해 보면 실행중인 Container 가 사라진 것을 확인할 수 있습니다.
12. 이제 아까 5번에서 build 한 이미지를 본인 계정의 docker hub 에 배포해 보겠습니다.
13. docker push [이미지이름] 을 클릭합니다.
14. docker hub 사이트에 접속하여 본인 계정으로 로그인을 하면 push 한 이미지가 올라가 있는 것을 확인할 수 있습니다. 이제 어느 pc 환경에서 해당 images 를 pull 받아서 돌려볼 수 있습니다.
15. 도커 컨테이너 내부로 접속해서 해당 정보를 보고 싶을 때는
- docker exec -it [docker container id] commans 를 입력하면 내부로 접속할 수 있습니다.
- root@~~# docker exec -it c756623007b2 /bin/bash
'Taskube DevNote' 카테고리의 다른 글
Docker 설치 MacOS (0) | 2020.02.17 |
---|
댓글