기타

도커는 유니온 파일 시스템을 사용하고 호스트 OS와 컨테이너 앱에서 발생하는 데이터를 공유 데이터의 영속성과 지속성을 보장하기 위해 (컨테이너는 삭제시 앱 내에서 발생한 데이터가 사라짐) 데이터와 비즈니스 로직을 분리하기 위한 매커니즘이다. volume 은 어디 생성되나? Linux 에서는 기본적으로 호스트 OS의 `/var/lib/docker/volumes` 에서 관리한다. Windows, Mac 에서는 해당 경로에서 찾을 수 없다. 이는 의도한 것으로 사실 volume 은 호스트 OS에서 직접 읽고 쓰는 작업을 위한 용도가 아니라, 컨테이너에서 쓸 영속 데이터를 관리하는 용도이기 때문이다. 호스트 OS에서 직접 쓸 데이터(ex. source code)는 volume 이 아닌 bind mount 를 쓰..
· 기타/git
Gitlab CI operation sequence Git push || merge events occurs Start pipeline on Gitlab-Runner Pull images from docker hub Docker instantiate container according to image Git pull repository (target branch) Execute jobs on Gitlab-Runner Report the result to Gitlab-Server Why Gitlab-Runner use Docker as default? Isolation 실제 구동되고 있는 인스턴스와 무관하게 컨테이너에서 동작함. Flexibility Configuration 변경이 자유로움. Docker ..
· 기타/git
🎯 Goals gitlab-ci.yaml 파일 기본 설정을 해본다. gitlab 의 CI 모델의 개념을 파악한다. gitlab + AWS EC2 환경에서의 CI 전략을 세워본다. GitLab CI Models 하나의 리포지토리가 하나의 파이프라인을 갖는다. Pipeline 리포지토리의 루트에 존재하는 Yaml 설정 파일 다른 파이프라인에 알림을 보낼 수 있다. 하나의 파이프라인은 여러 스테이지를 가질 수 있다. Stage 작업의 단위로 '순차적'으로 실행된다. 여러 Job 을 갖는다. ex) Install, Build, Test, Deploy , Run Job 한 스테이지 내에서 작업의 단위. [CI 전략 수립] 브랜치마다 서로 다른 EC2 인스턴스에 배포한다. master => production in..
· 기타/git
피씨방에서 개발 환경을 한번에 세팅해주는 툴이 있다면 얼마나 좋을까? 작은 사이드 프로젝트 `auto-setup` 은 이런 생각에서 출발했다. 개발 환경에 필요한 install 파일을 한번에 다운로드 받아서 띄워주는 프로그램. 근데 한가지 문제가 있었다. 이 소스를 실행하려면 Go SDK가 필요했다. 💡 릴리즈를 하자. 애초에 모든 귀찮은 installer 파일을 자동 다운로드 받아주기 위해 만든 것인데 다른 파일(SDK) 을 또 받아야만 실행할 수 있다는 것은 모순이다. 그래서 그냥 바로 다운받아 실행할 수 있게 바이너리 실행파일을 배포해야겠다는 생각이 들었다. Python 이나 Javascript (Typescript) 는 python3, Node.js 같은 실행기가 없으면 실행되지 않는다. 그래서 ..
· 기타/git
제목 그대로 서로 다른 2개의 repository 를 합쳐보자. 1. Base repository 열기 우선, 베이스 레포지토리를 연다. 2. 합칠 원격 repository를 추가한다. 3. Fetch from target repository 4. Integration 전용 branch 생성 그냥 베이스 브랜치에서 checkout 해도 된다. 5. Merge & Resolve conflict ⚠️ 서로 다른 저장소의 커밋 히스토리를 합치려(merge)하므로 에러가 발생한다. --allow-unrelated-histories 옵션을 주면 해결할 수 있다. 대부분 merge 하고나면 CONFLICT 에러가 발생할텐데 여기서는 수작업 하는 수 밖에 없다. 6. git push 이정도는 할 줄 알잖아? 7. 이..
· 기타/git
🔒 문제 상황 다른 컴퓨터에서 버전 관리 작업을 하다가 이런 식으로 user.name, user.email 을 설정하지 않은 채 commit을 해버리는 경우가 있다. 🔑 해결 방법 1. Interactive Rebase # 여기서의 COMMIT-HASH 는 # 내가 변경하고자 하는 커밋 이력의 '전' COMMIT 이어야한다. $ git rebase -i [COMMIT-HASH] 여기서는 'b19d6cc', 'aca3ccd' 의 commit 이력을 변경하고 싶다면 그 이전인 'c4f4bba' 로 rebase 해야한다. 2. edit 변경 대상 commit rebase -i 이때 commit 해시 앞에 'pick' 이 기본적으로 붙어있는데 'edit' 으로 변경해주면 해당 commit을 변경할 수 있다. 3..
M_Falcon
'기타' 카테고리의 글 목록 (5 Page)