TIL( Today I Learned)
21-04-19 월
-
08:30 아침 스터디
- git 다시 알기
- pip 정리하기
-
Docker 정리하기
-
image 생성, dev / prod
- dev : Dockerfile 만들고 volume share
- prod : Dockerfile + 실행 코드 code들 ADD
-
docker compose dev / prod 구분 어떻게?
-
dev : docker 파일로 동작하면 된다.
- 이미지 build 해서 동작
-
prod : image 댕겨와서 동작해야한다.
- containger reristry 에 올려진 이미지로 동작
-
-
배포는 어떻게?
-
Jenkins
- git repository pull
- Builld Docker image
- Push image to Google Container Resistry
- Push Docker-Compose file to Google Container Storage
- Pull Docker-compose file
- run gcloud command
-
-
21-04-20 화
- 연차
21-04-21 수
-
Django Dockerizimg
-
테스트 하면서 놓친 lib 파악하기
- google storage 관련 python package는 깔려있지 않아도 동작이 가능하다.
-
- local, deploy process 만들기
21-04-22 목
- 개발 기초 스터디
-
Git
-
add commit push
- file path
-
git pull —rebase origin develop
- merge
- —no-ff
- —squash
-
—rebase
- conflict 가능성을 낮춘다.
- 단점 : commit history 구분이 섞인다.
-
git stash -p
- hunk 단위 stash 가능하다.
-
commit
-
브랜치는 리모트에서(e.g. github, gitlab, etc) 따는게 좋다. (로컬말고)
- git checkout develop
- git fetch origin develop
- git checkout -b feature-story101234
- 주제에 맞는 커밋만
-
step 1
- file 단위로 커밋
-
step 2
-
헝크 단위로 커밋
- patch option (git add -p)
- interactive mode (s, a, …)
-
git commit —amend
- 직전 commit에 합치기
- git commit -m “title”
- git log -p [file path]
-
헝크 단위로 stash
- git stash save “title” -p
-
-
step 3
- 줄단위 커밋
- hunk 에디팅
-
git commit -am “t”
- a : all
-
-
-
django
-
logs 처리
-
docker cli
- -v /Users/
:/
- -v /Users/
-
compose
-
volume:
- - ~/logs/bo-api/:/app/GS_API/logs/bo-api/
-
-
- docker build 해보기
-
-
Jenkins 배포
-
Docker 빌드, 배포 프로세스 구성
- docker
-
찾아보기
- Jenkins docker 설치
- gce auth fail
-
-
Nginx
- settings
- Dockerfile 필요하다
- front 달기 생략. 별도구성
- SSL 인증서 달기
21-04-23 금
-
docker
-
jenkins -> gcr
-
registry auth
-
-
compose.yml -> gcs
- gsutil cp
gs://storage/address/somewhere/
- gsutil cp
-
TEL (Trial and Error Log)
21-04-21
-
ERROR: django.db.utils.OperationalError: (1054, “Unknown column ‘product. modify_by’ in ‘field list’“)
- SITUATION: django 동작 에러
- REASON: modle db_column에 space 들어감
-
SOLUTION:
- space 제거한다.
-
ERROR: nginx 502 bad gateway
- SITUATION: nlp 외부 요청 팅겨냄, 직접 하면 되는데, 우회해서 하면 안된다.
-
REASON:
- 내부에서 internal error 발생중, elastic index 날라갔음
-
SOLUTION:
- elastic index 다시 만듬
-
ERROR: docker OSError: mysql_config not found
- SITUATION: Docker building
-
REASON:
default-libmysqlclient-dev
가 없어서
-
SOLUTION:
- `
RUN apt-get install python3-dev default-libmysqlclient-dev -y`
- `
21-04-22
-
ERROR: for gsapidmc-django_1 Cannot start service dmc-django: Mounts denied:
- SITUATION: django host filesystem mounting
-
REASON:
- file path 잘못 넣고 있었음’
-
SOLUTION:
- file path 수정
-
ERROR: docker .sh 파일 실행시 동작 안함
- SITUATION: django gunicorn 실행 파일 .sh 로 실행중
-
REASON:
- docker command 에서 & back ground 작업이 안먹음
-
SOLUTION:
- & backgroud 작업 삭제
21-04-23
-
ERROR: /var/run/docker.sock: connect: permission denied
- SITUATION: docker 실행중
- REASON: 권한문제
-
SOLUTION:
/var/run/docker.sock
파일의 권한을 666으로 변경하여 그룹 내 다른 사용자도 접근 가능하게 변경sudo chmod 666 /var/run/docker.sock
- 또는 chown 으로 group ownership 변경
sudo chown root:docker /var/run/docker.sock
-
ERROR: Jenkins and docker: uri was not specified
- SITUATION: jenkins docker plugin으로 빌드중
- REASON:실행 연결 지점 못찾음
-
SOLUTION:
- In Manage
Jenkins/Configure System/Docker
- Builder You will see that the Docker URL option is left blank. Fill it with the unix socket url
unix:///var/run/docker.sock
. That should solve the issue.
- In Manage
-
ERROR: gcloud login shell 에서 되는데, jenkins에서 안됨
- SITUATION: gcloud auth 했는데 동작을 못하고 있음
-
REASON:
- 플러그인 동작 에러…
-
SOLUTION:
-
Excute Shell command 로 진행
- 임시방편 해결책이다.
-