DevOps/Docker
-
[따라하며 배우는 도커와 CI환경] 9. 복잡한 어플을 실제로 배포해보기(테스트 & 배포 부분)DevOps/Docker 2022. 7. 5. 00:24
이제 소스코드를 테스트한 후 테스트 성공 시, AWS를 통해 배포하는 부분을 추가할 것이다. 애플리케이션을 배포하는 과정은 다음과 같다. Travis CI에서 바로 AWS Elastic Beanstalk으로 전달하지 않고, Docker Hub에 빌드된 이미지를 보관함으로써 이미지를 한 번만 빌드하도록 한다. ✔️ Github 에 소스코드 업로드 1️⃣ github에서 repository 생성하기 2️⃣ 로컬 git 저장소 만들기 $ git init 3️⃣ .gitignore 파일 추가 node_modules mysql_data 4️⃣ 커밋하기 $ git add . $ git commit -m "first commit" 5️⃣ remote 저장소에 push 하기 처음에는 remote 저장소를 추가한 후, ..
-
[따라하며 배우는 도커와 CI환경] 8. 복잡한 어플을 실제로 배포해보기(개발 환경 부분)DevOps/Docker 2022. 6. 22. 21:01
지난 포스트에서는 리액트 컨테이너 하나만 실행하는 싱글 컨테이너 애플리케이션을 만들어보았다. 이번엔 프론트엔드 뿐만 아니라 백엔드 서버, 데이터베이스까지 사용하도록 다음과 같은 풀스택(멀티 컨테이너) 애플리케이션을 만들 것이다. ✔️ Multi Container 애플리케이션을 위한 설계 Multi Container 애플리케이션을 설계하는 방법 2가지를 알아보자. 1️⃣ Nginx의 Proxy를 이용한 설계 장점 Request를 보낼 때 URL 부분을 host 이름이 바뀌어도 변경시켜주지 않아도 된다. 포트가 바뀌어도 변경하지 않아도 된다. axios.get('/api/values') 단점 nginx 설정, 전체 설계가 다소 복잡하다. 2️⃣ Nginx는 정적파일을 제공만 해주는 설계 장점 설계가 다소 간..
-
[따라하며 배우는 도커와 CI환경] 7. 간단한 어플을 실제로 배포해보기(테스트 & 배포 부분)DevOps/Docker 2022. 6. 13. 16:09
이번에는 지난 포스트에서 생성한 애플리케이션을 배포해보자! 다음의 순서대로 애플리케이션을 테스트 및 배포할 것이다. Github에 소스 코드 업로드 Travis CI 연동 AWS Elastic Beanstalk 환경 구성 배포 ✔️ Github에 소스 코드 업로드 먼저 Github에 애플리케이션의 소스 코드를 올려야 한다. 1️⃣ Repository 생성 깃허브에서 새로운 repository를 생성한다. 나는 docker-react-app 이라는 이름으로 repository를 생성하였다. 강의에서는 public은 무료, private 유료라고 했다. 그러나 나는 private으로 설정해도 별도의 요금은 부과되지 않았다. 2️⃣ 로컬 git 저장소 만들기 $ npm init 우리는 처음에 npx creat..
-
[따라하며 배우는 도커와 CI환경] 6. 간단한 어플을 실제로 배포해보기(개발 환경 부분)DevOps/Docker 2022. 5. 30. 14:56
이번 시간부터는 간단한 애플리케이션를 배포하면서 도커를 배워보자. ✔️ 리액트 환경 세팅 리액트를 사용하려면 node를 반드시 설치해야 한다. $ npx create-react-app ./ node 설치 후, 위의 명령어를 통해 리액트 앱을 위한 환경을 세팅한다. 명령어가 실행되면 다음과 같은 파일들이 생성된다. ✔️ 도커로 리액트 앱 실행 이제 도커를 통해 리액트 앱을 실행해보자. 도커로 리액트 앱을 실행하기 위해서는 다음과 같은 과정을 수행해야 한다. 1️⃣ 도커 파일 생성 및 빌드 다음과 같이 도커 파일을 생성하자. Dockerfile.dev FROM node:alpine WORKDIR /usr/src/app COPY package.json ./ RUN npm install COPY ./ ./ CM..
-
[따라하며 배우는 도커와 CI환경] 5. Docker ComposeDevOps/Docker 2022. 5. 23. 17:11
📌 Docker Compose 란, 다중 컨테이너 도커 애플리케이션을 정의하고 실행하기 위한 도구 이다. 정의만 보아서는 어떤 도구인지 감이 잘 오지 않을 것이다. Node.js와 Redis를 이용한 애플리케이션을 만들어보면서 Docker Compose에 대하여 알아보자. 지난 강의에서 Node.js를 사용하여 간단한 애플리케이션을 만들어보았다. 그렇다면 Redis란 무엇일까? ✔️ Redis 란? Redis(REmote Dictionary Server)는 메모리 기반의 키-값 구조 데이터 관리 시스템으로, 모든 데이터를 메모리에 저장하고 빠르게 조회할 수 있는 비 관계형 데이터베이스(NoSql)이다. Redis를 사용하는 이유 메모리에 저장하기 때문에 Mysql 같은 데이터베이스에 데이터를 저장하고 불..
-
[따라하며 배우는 도커와 CI환경] 4. 도커를 이용한 간단한 Node.js 어플 만들기DevOps/Docker 2022. 5. 22. 15:33
이제부터 매우 간단한 Nodejs 앱을 도커 환경에서 실행해보자. ✔️ 아주 간단한 Node.js 앱 만들기 도커 실습을 위한 것이기 때문에 앱은 최대한 간단하게 만들어보자! Nodejs 프로젝트를 생성해주고 다음과 같이 파일을 추가한다. package.json { "name": "nodejs-docker-app", "version": "1.0.0", "description": "", "main": "server.js", "scripts": { "start": "node server.js", "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "express": "^..
-
[따라하며 배우는 도커와 CI환경] 3. 직접 도커 이미지 만들기DevOps/Docker 2022. 5. 17. 01:23
✔️ 도커 이미지 생성 순서 도커 이미지를 생성하는 과정은 다음과 같다. 1. 도커 파일을 작성한다. 2. 도커 파일에 입력된 값들을 클라이언트에 전달한다. 3. 도커 서버에서 도커 클라이언트에 전달된 모든 중요한 작업들을 수행한다. 4. 이미지를 생성한다. 이제부터 도커 이미지 생성 과정을 더 자세하게 알아보자. ✔️ Dockerfile 만들기 Docker file이란? - 도커 이미지를 만들기 위한 설정 파일 - 컨테이너가 어떻게 행동해야 하는지에 대한 설정들을 정의하는 곳이다. 베이스 이미지(Base Image)란? - 도커 이미지의 기반이 되는 부분 - 참고) 도커 이미지는 베이스 이미지와 레이어들로 구성되어 있다. 도커 파일을 만드는 순서 1. 베이스 이미지를 명시한다. (파일 스냅샷에 해당) ..
-
[따라하며 배우는 도커와 CI환경] 2. 기본적인 도커 클라이언트 명령어DevOps/Docker 2022. 5. 16. 16:41
기본적인 도커 명령어를 알아보자! ✔️ 이미지 내부 파일 시스템 구조 보기 이미지 내부 파일은 어떻게 확인할 수 있는지 알아보자. $ docker run ls 위의 명령어를 통해 내부 파일 목록을 확인할 수 있다. 각각의 의미를 살펴보자. docker: 도커 클라이언트 언급 run: 컨테이너 생성 및 실행 이미지 이름: 이 컨테이너를 위한 이미지 ls: 원래 이미지가 가진 시작 명령어 대신 이 커맨드가 실행됨 기본적으로 docker run 을 실행하면 이미지가 가지고있는 시작 명령어가 실행된다. 그러나 이미지 이름 뒤에 ls 와 같이 커맨드를 추가하여 docker run 를 실행하면, 시작 명령어를 무시하고 커맨드를 실행하게 된다. alpine 이라는 이미지의 내부 파일 구조를 확인해보자. ex) $ d..