분류 전체보기
-
[docker] docker로 nestJS 서버띄워보기devops/docker 2024. 12. 7. 12:51
docker로 nestJS 서버띄워보기 도커파일FROM nodeWORKDIR /appCOPY . .RUN npm installRUN npm run buildEXPOSE 3000 .dockerignorenode_modules.env 도커파일로 이미지 생성docker build -t my-server 이미지로 컨테이너 실행docker run -d -p 3000:3000 my-server 브라우저 localhost:3000 확인
-
[docker] 도커파일 만들기1devops/docker 2024. 12. 7. 00:03
도커파일 만들기 도커파일도커 이미지를 만들어주는 파일도커허브에 있는 도커 이미지가 아닌 나만의 도커 이미지를 만들고 싶을 수 있다.예를들어 내가 만든 nestJS 프로젝트가 있다. 내가 만든 nestJS 프로젝트 자체를 도커 이미지로 만들고 싶을 수있다.이때 도커파일을 이용하면 나만의 도커이미지를 만들 수 있다.도커파일 만들기FROM- 베이스 이미지를 생성하는 역할- 특정 초기 이미지를 기반으로 추가적인 세팅을 할 수 있다.- 여기서 특정 초기 이미지가 곧 베이스 이미지.-컨테이너로 미니 컴퓨터 환경을 구축할때 기본 프로그램이 어떤게 깔려있으면 좋겠는지 설정하는 옵션.예를들어 누군가는 JDK가 깔려있는 컴퓨터 환경이 세팅되기를 바랄 수도 있고, 누군가는 node가 깔려있는 컴퓨터 환경이 세팅되기를 바랄 ..
-
[docker] docker volume으로 mysql 서버띄우기devops/docker 2024. 12. 6. 19:10
docker volume으로 mysql 서버띄우기 볼륨- 도커 컨테이너에서 데이터를 영속적으로 저장하기위한 방법- 볼륨은 컨테이너 자체의 저장공간을 쓰지않고 호스트 자체의 저장공간을 공유해서 사용한다- 도커 컨테이너는 삭제하면 데이터가 삭제된다. 볼륨을 쓰는 이유- 기존에는 도커를 써서 특정 프로그램을 컨테이너로 띄웠다. 여기서 프로그램의 새로운 버전이 나오면 새로운 이미지를 통해 새로운 컨테이너를 만들게 된다. 이때 만약 이 컨테이너가 mysql 이었다면 mysql내 데이터들도 함께 삭제된다.- 그래서 데이터의 영속성을 위해서 볼륨을 이용해야한다.- 이를 통해 새로운 컨테이너를 쓰더라도 기존의 데이터를 유지할 수 있다.- 볼륨을 이용하면 호스트와 컨테이너에서 연결된 각각의 주소가 공간을 공유한다. 따라..
-
[docker] 도커, 도커 CLI 알아보기devops/docker 2024. 12. 6. 15:00
도커 알아보기 도커를 쓰는이유 - 이식성특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행, 배포할 수 있다.도커를 쓰면 어떤 컴퓨터든 특정 프로그램을 에러 없이 설치하고 실행할 수 있다.그외장점)매번 귀찮은 설치과정을 일일이 거치지않아도된다.항상 일관되게 프로그램을 설치할 수 있다(버전, 환경 설정, 옵션, 운영체제와 상관없이)각 프로그램이 독립적인 환경에서 실행되기 때문에 프로그램간 충돌이 일어나지 않는다. Docker컨테이너를 사용하여 각각의 프로그램을 분리된환경에서 실행 및 관리할 수 있는 툴이다 컨테이너- 하나의 컴퓨터 환경내에서 독립적인 컴퓨터 환경을 구성해서 각 환경에 프로그램을 별도로 설치할 수 있게 만든 개념. - 하나의 컴퓨터 환경에서 여러개의 미니 컴퓨터 환경을 구성.- 여기서 미..
-
[CI/CD] github-actions를 이용한 CI/CD구축-3 (+AWS code deploy)devops/CICD 2024. 12. 4. 20:13
github-actions를 이용한 CI/CD구축-3 (+AWS code deploy) code deploy를 사용하는이유 (장점)code deploy는 여러대의 ec2 서버에 자동 배포를 쉽게 구축할 수 있다쉽게 무중단 배포를 적용할 수 있다.그외 장점(둘다 github-actions의 단점을 커버하는 것) code deploy 단점code deploy를 이용함으로써 인프라 구조가 복잡해진다. 복잡해질수록 관리비용, 유지보수 비용, 난이도, 트러블슈팅, 복잡도가 증가한다 code deploy 는 언제써야 좋을까?서버가 여러대이거나무중단 배포가 중요한 서비스일때이용한다. 소규모 프로젝트일때는 오버엔지니어링이 될 수 있기때문에 사용을 지양한다. github-actions를 이용한 CI/CD..
-
[CI/CD] Github-Actions로 CI/CD 구축하기-2 개선devops/CICD 2024. 12. 4. 20:02
Github-Actions로 CI/CD 구축하기-2Github-Actions CI/CD 흐름 개선하기 기존 Github-Actions의 방식 기존 방식의 문제점인스턴스에서 git pull을 통해 코드를 다운받고 직접 빌드를 했다. 하지만 빌드를 하는 작업은 무겁기때문에 이는 서버의 성능에 영향을 미친다. 새로 개선된 방식 Github-Actions는 컴퓨터이기 때문에 빌드와 테스트를 여기서 해주고 빌드된 파일을 인스턴스로 전달할 수 있다.빌드된 파일을 전달할때 압축을 해놓기 때문에 인스턴스에서 압축을 풀고 이를 갖고 서버 재실행. 개선한 방식의 장점빌드를 인스턴스가 아닌 github-actions에서 하기때문에 배포서버의 성능에 영향을 미치지 않는다. 개선한 방식의 단점무중단 배포를 구현하거나..
-
[Linux] tar 압축 명령어 알아보기카테고리 없음 2024. 12. 4. 19:56
tar 압축 명령어 알아보기 리눅스에서는 사실 파일을 묶는 것과 압축하는 개념이 분리되어있다. 아카이빙(파일을 묶는것): 하나의 파일에 파일들과 디렉토리들을 묶는 것(용량변화없이)압축: 파일이 차지하는 용량을 줄이는것 아카이브: 하나로 묶인 파일 tar 명령어여러개의 파일을 하나로 묶거나 풀때 사용하는 명령어 tar [OPTION] [아카이브FILE명] [FILE|PATH] -f 대상파일을 tar 아카이브 지정 (기본 옵션)-c tar 아카이브 생성. 기존 아카이브 덮어 쓰기 (파일 묶을 때 사용)-x tar 아카이브에서 파일 추출(파일 풀 때 사용)-v 처리되는 과정(파일 정보)을 자세하게 나열-z gzip 압축 적용 옵션-t tar 아카이브에 포함된 내용 확인 참고: https://i..
-
[CI/CD] Github-Actions로 CI/CD 구축하기-1devops/CICD 2024. 12. 4. 17:05
Github-Actions로 CI/CD 구축하기-1프로젝트 적용해보기 1. Nest JS 프로젝스 세팅nest new [프로젝트명]nest new github-practice-server 2. Github에 프로젝트 올리기 2-1) 깃허브 프라이빗 레포지토리 생성 2-2) 레포지토리에 프로젝트 올리기cd github-action-practicegit initgit add .git commit -m "first commit"git branch -M maingit remote add origin [레포지토리 URI]git push -u origin main 3. EC2 세팅 3-1) EC2 보안그룹 3000포트열기 NestJS는 기본적으로 3000포트에서 실행된다. 3-2) node 설치sudo apt..