All Articles

TIL&TEL 21.04.19~21.04.25

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/:/
      • compose

        • volume:

          • - ~/logs/bo-api/:/app/GS_API/logs/bo-api/
    • docker build 해보기
  • Jenkins 배포

  • Nginx

    • settings
    • Dockerfile 필요하다
    • front 달기 생략. 별도구성
    • SSL 인증서 달기

21-04-23 금

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.
  • ERROR: gcloud login shell 에서 되는데, jenkins에서 안됨

    • SITUATION: gcloud auth 했는데 동작을 못하고 있음
    • REASON:

      • 플러그인 동작 에러…
    • SOLUTION:

      • Excute Shell command 로 진행

        • 임시방편 해결책이다.