본문 바로가기

잡다

(44)
[git] WSL2 환경에서의 글로벌 .gitconfig WSL2 ubuntu 20.04 환경에서 깃허브를 이용하기 위해 커밋을 진행하고 있는데, 어느 순간 다음과 같은 에러를 발생시키면서 커밋을 실패했다. error: insufficient permission for adding an object to repository database .git/objects error: .github/workflows/deploy.yml: failed to insert into database error: unable to index file '.github/workflows/deploy.yml' fatal: updating files failed 대략 권한 문제가 있다는 메세지로 보여서 sudo 명령으로 커밋을 진행하기로 했다. 그랬더니 커밋 자체는 제대로 수행되지만, ..
[docker] cli 명령어들 도커에서 이미지나 컨테이너와 관련된 작업을 하기 위해서는 docker client 상에 정의된 명령어를 이용해야 한다. 여기서는 중요한 명령어 몇가지를 정리한다. 도움말 docker --help 각종 명령 뒤에 --help 을 덧붙이면 해당 명령에 대한 여러 옵션이나 도움말 등을 볼 수 있다. docker run 도커 이미지로부터 컨테이너를 생성한 후 실행하는 명령이다. run 명령은 생성(create) + 실행(start) 2개 명령이 조합된 것으로, 컨테이너를 쉽게 실행하기 위한 줄임 명령이라고 생각할 수 있다. docker run [options] image_name [command] options : 대상이 되는 이미지에 대해 적용할 옵션. image_name : 다운로드 할 이미지 이름. htt..
[docker] Vmmem 이 지나치게 메모리를 잡아먹는 현상 문제점 윈도우 운영체제에서 WSL2를 이용하여 도커 사용 중 우연히 작업관리자를 보았는데, Vmmem이라는 프로그램이 엄청난 양의 메모리를 사용하고 있다는 사실을 알게 되었다. Vmmem은 윈도우 환경에서 WSL을 이용할 때 사용하는 프로그램으로, 윈도우 환경에서 리눅스 운영체제를 구현하기 위해 사용되는 가상 머신이라고 한다. 인터넷을 통해 찾아본 결과, 많은 사람들이 WSL 에서 WSL2로 업데이트 한 이후 메모리를 과다하게 이용 + 메모리 해제가 되지 않는 현상을 겪었다고 한다. 이 현상은 docker desktop을 이용할 때 더욱 두드러진다. docker-desktop 사용시 WSL2 환경에서 기본 운영체제 이외의 다른 서비스도 함께 시작되는데, 해당 환경들이 상당한 메모리를 잡아먹고도 제대로 메..
[docker] 오늘의 삽질 : nginx 서버, ERR_EMPTY_RESPONSE 에러 문제점 Dockerfile의 내용을 다음과 같이 구성했다. FROM node:alpine as builder WORKDIR '/home/node/app' RUN chown -R node:node . COPY package.json . RUN npm install COPY . . #volume 같은 것은 개발 단계에나 의미 있는 코드지, 이미 개발된 코드에서는 관심 영역이 아님. # USER node RUN npm run build # /home/node/app # USER root # RUN Phase FROM nginx COPY --from=builder /home/node/app/build /usr/share/nginx/html 이후 다음 명령을 shell 상에 순서대로 입력했다. docker bui..
[docker] 오늘의 삽질 : failed to solve with frontend dockerfile.v0: failed to create LLB definition: rpc error: code = Unknown desc = error 발생한 문제 강의를 듣고, WSL2 환경에서 Dockerfile을 빌드하여 이미지를 만드려고 했다. 사용된 Dockerfile은 다음과 같다. FROM node:alpine as builder WORKDIR '/home/node/app' # app 폴더의 소유권을 node 유저로 변경 -> 후 build 폴더 만들 때 이용된다. RUN chown -R node:node . COPY package.json . RUN npm install COPY . . #volume 같은 것은 개발 단계에나 의미 있는 코드지, 이미 개발된 코드에서는 관심 영역이 아님. USER node RUN npm run build # /home/node/app # RUN Phase FROM nginx COPY --from=builde..
[docker] 오늘의 삽질 : permission denied, mkdir '/app/node_modules/.cache' 도커 관련 강의를 들으며 리액트 프로젝트를 도커 이미지로 만드는데, 다음과 같은 에러가 발생했다. 당시 내가 사용한 도커파일 코드는 다음과 같다. FROM node:alpine WORKDIR '/app' COPY package.json . RUN npm install COPY . . EXPOSE 3000 # 어떤 포트로 내보낼 것인가에 대한 일종의 약속에 불과함. 실제 포트 연결이 필요하다면 run -p 외부:내부 를 이용. CMD ["npm", "run", "start"] EACCES 는 대략 엑세스 문제가 발생했다는 에러로, 현재 상태에서는 /app/node_modules/.cache 파일에 문제가 있는 것으로 보인다. mkdir을 통해 파일을 생성하는 것을 권장하는 것으로 보아, 실제로 파일이 없는..
[docker] 오늘의 삽질 → docker daemon is not running & wsl2 apt-get can't connect to security.ubuntu.com 결과적으로 현재 문제는 컴퓨터를 최신 상태로 업데이트 하면서 해결 되었다. 그러나 정말 이유도 모른채 해결되어버린 문제라, 혹시 차후에 해당 상황이 다시 발생한다면 오늘의 행동을 재현해보기 위해 이 글을 써본다. 당시 상황을 설명하면, 나는 WSL2 환경에서 도커 이미지를 만드는 연습을 위해 vscode을 실행하려 했다. 당시 컴퓨터로 웹서핑을 조금 한 후, WSL2을 켠 상태였다. 나는 다음과 같은 명령을 통해 vscode을 실행했다. code . // 현재 폴더에서 vscode을 실행한다 그런데 vscode가 업데이트를 진행하면서도 몇분이고 0% 상태에 머물렀다. 이후 3번 이상 vscode 실행을 시도했지만 여전히 제대로 실행되지 않았기에, 나는 어떤 문제가 있으리라 판단하여 몇가지 작업을 시도해봤..
[SQL] Entity Relationship Model Entity 현실에서 독립되어 존재하는 대상을 의미하며, 물리적 혹은 개념적으로 존재할 수 있다. 의자, 나무, 자동차 등은 현실에 물리적으로 존재한다. 반면 선호도나 견해 등은 물체는 아니지만 개념적으로 존재한다. 이렇듯 현실에서 독립된 형태로 나타낼 수 있는 모든 대상을 Entity라고 한다. Attribute 엔티티를 설명하는 속성들을 의미한다. 흔히 자기소개를 하게 되면 이름 · 나이 · 학력 등의 정보를 이용하여 자신을 설명한다. 이때 이러한 정보들이 모든 사람에게 존재하는 일종의 속성이라면, 인간을 해당 속성을 기반으로 분류하거나 묘사할 수 있게 된다. 인간뿐만 아니라 다양한 존재들에 대해 해당 대상을 설명하는데 필요한 몇몇 속성들이 존재할 수 있는데, 이러한 개개의 존재(엔티티) 들이 가지는..