728x90 docker5 [Docker]Travis CI, EB를 이용한 배포 Travis CI Travis CI는 연동된 repository에 push가 발생하면 자동으로 해당 어플리케이션을 빌드, 테스트, 배포해준다. 그러기 위해서는 travis CI에서 어플리케이션이 있는 repository를 연동해줘야 한다. 처음 travis CI에 가입 시 깃헙 계정과 연동해서 로그인해줘야 하고, 아무 플랜도 없을 때는 빌드가 불가능하므로 기본 크레딧이 제공되는 Free plan을 선택해서 카드를 등록해줘야 한다. travis CI로 자동 배포를 하기 위해서는 .travis.yml 파일이 어플리케이션 루트 디렉터리에 있어야 한다. sudo: required language: generic services: - docker before_install: - echo "test start" -.. 2023. 7. 25. [Docker]개발 환경 vs. 운영 환경 개발 환경 vs. 운영 환경 앱을 dockerizing할 때 실제 앱에 담길 Dockerfile과 개발환경에서 쓰이는 Dockerfile.dev 를 별개로 작성한다. 이는 volume을 이용해서 개발 환경에서 불필요한 종속성 설치를 최소화하기 위함이다. # Dockerfile.dev FROM node:alpine WORKDIR /usr/src/app COPY package.json ./ RUN npm install COPY ./ ./ CMD ["npm", "run", "start"] COPY package.json을 RUN 이전에 배치함으로써 불필요한 종속성 설치를 생략했다. 이 때, 일반적인 docker build ./ 명령을 실행하면 Dockerfile을 자동으로 인식하지 못해 오류가 발생하므로 do.. 2023. 7. 24. [Docker]COPY, Volume, Compose FROM node:10 COPY ./ ./ RUN npm install CMD ["node", "server.js"] node.js 어플리케이션을 담은 컨테이너를 실행하기 위해 docker 이미지 파일을 생성한다. COPY ./ ./ 는 현재 디렉토리 내에 있는 모든 파일들을 스냅샷으로 해당 컨테이너에 추가한다. 이런 식으로 스냅샷을 추가해주지 않으면 컨테이너 run에 필요한 파일들이 없어 오류가 뜬다. 빌드 후 컨테이너를 실행했을 때 server.js에 명시된 포트번호(8080)로 접속해보면 접속이 되지 않는다. 이는 로컬 환경에서의 포트번호와 컨테이너의 포트번호가 다른 개념이기 때문이다. 따라서 로컬 환경에서의 포트를 컨테이너의 포트에 연결해서 run 명령어를 실행해줘야 한다. docker run -.. 2023. 7. 23. [Docker]이미지 Docker 이미지 구조 이미지는 시작시 실행될 명령어+파일 스냅샷이 존재한다 시작시 실행될 명령어 외에 다른 명령어를 이용할 수 있음 docker run alpine ls 시작시 실행될 명령어를 무시하고 ls라는 명령어를 사용 가능 But, 명령어를 실행 가능하게 하는 파일이 이미지의 스냅샷 내에 없다면 에러가 발생 실행 중인 컨테이너 보기(ps) docker ps ps 명령어를 통해 실행 중인 컨테이너들을 확인할 수 있다 CONTAINER ID, IMAGE, COMMAND, CREATED, STATUS, PORTS, NAMES docker ps --format 'table{{.Names}}\ttable{{.Image}}' Names와 Image만을 조회하는 옵션을 --format을 통해 설정해줌 do.. 2023. 7. 23. [Docker]기본 개념 도커를 쓰는 이유? 프로그램 실행에 필요한 환경을 통일하기 위해 컨테이너란? 코드, 종속성 등을 패키지화해서 프로그램이 어디서나 안정적으로 빠르게 실행될 수 있도록 하는 소프트웨어 단위. 컨테이너화된 소프트웨어는 인프라에 관계없이 항상 동일하게 실행되고 어떤 개발과 스테이징의 차이에서도 균일한 작동이 보장된다. 도커 이미지(컨테이너 이미지)란? 코드, 런타임, 라이브러리 등 프로그램을 실행하는 데 필요한 모든 것을 포함하는 소프트웨어 패키지. 컨테이너는 이미지의 인스턴스라고 볼 수 있다. 도커 vs VM VM은 서버를 논리적으로 분할해서 독립적으로 이용 가능한 가상 환경의 서버 하이퍼바이저는 호스트 시스템에서 여러 게스트OS를 이용할 수 있도록 하드웨어 가상화, VM 모니터링 등을 담당하는 중간 관리 소.. 2023. 7. 21. 이전 1 다음 728x90