분류 전체보기
-
[Docker] EXPORT vs ARG vs ENV 환경변수 생성 명령어 비교Docker 2021. 6. 23. 23:32
ARG AKA "build-time variables" Docker 이미지를 build할 때(RUN) 환경 변수 생성 Dockerfile에서 ARG로 정의된 순간부터 이미지 빌드되는 시점까지 사용됨. 컨테이너 실행 시에는 ARG 변수 접근 불가 Dockerfile에서 ARG 값을 default로 주지 않고, build 명령어에 값을 지정하지 않으면 에러 발생함 해당 default 값이 있다면, build 명령 시 ARG 값으로 대체됨 ENV Build 단계에서 참조 가능(ARG를 ENV에 pass하는 경우 등) Docker 컨테이너를 실행할 때(ENTRYPOINT, CMD) 환경 변수 전달 및 덮어쓰기 가능 # expect a build-time variable(이미지 빌드 시 --build-arg 파라..
-
Docker 컨테이너 배포 파이프라인 구축 스프린트 회고프로젝트 회고록 2021. 6. 18. 22:11
0. 진행 배경 검색어 추천 학습을 위한 버전 관리 (새 고객사 추가 이후 데이터 반영, 기존 고객사 데이터 업데이트 등) 파이프라인 구축 필요 처음 목표했던 점은 keyword DAG 에서 1) 데이터 전처리, 학습 진행 후 S3 업로드와 2) 학습 결과 데이터를 바탕으로 docker 이미지 빌드 후 3) ECR에 Push하여 4) ECS에서 최신 이미지를 Pull 받아 추천 컨테이너 돌리기⇒ 추천 API 응답 확인 1. Dockerfile 작성 👉 검색어 추천 학습을 마치고 해당 버전을 구분할 수 있는 TIMESTAMP(날짜_시간) 태그를 달아서 docker 이미지 빌드 후 ECR에 이미지 Push 하기 위한 Dockerfile 작성 FROM --platform=linux/amd64 python:3...
-
Docker API 이미지 빌드 buildargs 파라미터 값 변환(Feat. URI component encode)카테고리 없음 2021. 6. 15. 22:58
Docker API로 도커 이미지 빌드 시 buildargs라는 파라미터를 Request body에 추가하여 변수 값을 전달할 수 있습니다. 이때 buildargs 파라미터를 전달하기 위해서는 URI component encoded 형태로 변환을 해주어야 합니다. 아래 Docker API 공식문서를 보고 참고해보겠습니다. https://docs.docker.com/engine/api/v1.41/#operation/ImageBuild Docker Engine API v1.41 Reference docs.docker.com buildargs를 파라미터로 추가할 수 있는 방법에 대해서 설명해주고 있습니다. 👉 buildargs={"FOO":"bar"} 일반적으로 URL 주소에 파라미터를 추가하는 양식은 다음과..
-
[Docker] Image build 자동화를 위한 Shell Script 작성하기Docker 2021. 6. 11. 22:05
👉 이미지 빌드를 위한 파일 압축 및 빌드 명령어를 자동화하기 위해 Shell Script에 작성하기 👉 해당 스크립트를 실행하기 위한 Task를 Airflow DAG에 추가하기 3-1) Shell Script 작성 👉 Docker 이미지 빌드를 위한 cmd 명령어 등 관련 명령어들 자동화 하기 위해 shell script에 작성 buildargs={"TIMESTAMP":"${TIMESTAMP}"} # Image Build 시 필요한 파일들 압축 tar -cvf Dockerfile.tar.gz Dockerfile requirements.txt app.py ... # CLI 명령어 첫번째 전달 파라미터 -> $1 # Image TAG Name from Airflow DAG(current_dag_run_ti..
-
CLI 파라미터 변수 Shell Script 쉘 스크립트에 전달하기개발Tip 2021. 6. 6. 22:16
shellname.sh 라는 이름의 파일을 생성합니다. vi shellname.sh # shellname.sh echo "name: $1" echo "Age: $2" 그리고 반환하고 싶은 값을 인자와 함께 위와 같이 입력합니다. 여기서 $1, $2는 이 쉘 스크립트를 CLI에서 실행할 때 입력하는, 즉 전달받는 첫 번째와 두 번째 인자를 의미합니다. 작성한 쉘 스크립트는 source 또는 sh 명령어로 실행시킬 수 있습니다. 이 때 $1과 $2에서 받을 name과 Age 변수 값을 함께 입력합니다. $ source shellname.sh myname 20 $ sh shellname.sh myname 20 그러면 아래와 같이 해당 변수를 전달받아 잘 반환해주는 것을 확인할 수 있습니다. [참고] https..
-
[Docker] Docker API를 활용한 도커 이미지 빌드하기Docker 2021. 6. 3. 23:37
배경상황: AWS EC2 인스턴스에서 docker 컨테이너 실행 후 bash로 들어가서 Dockerfile을 작성함. 이 Dockerfile을 가지고 도커 이미지를 빌드하고 ECR에 올린 다음 ECS로 컨테이너를 실행하는 것이 최종 목표. docker 컨테이너 안에서 이미지 빌드/컨테이너 실행은 docker-in-docker 형태로 가능함. 몇 가지 방법이 있는데 1. docker socket을 활용한 bind mount 2. docker in docker인 dind 또는 3. docker 컨테이너 안에서 docker 수동 설치하기 4. docker 컨테이너를 실행한 이미지 빌드용 Dockerfile에 도커 설치 명령어 추가하기 그러나 1,2,4번의 경우 기존에 작성된 Dockerfile이 없기 때문에 ..
-
[Github] Git commit 깃 커밋 날짜 수정&변경하기GIT/GITHUB 2021. 5. 29. 23:28
실수로 잔디 심기를 깜빡했을 때 유용한 Tip입니다:) 1. git log로 commit history를 확인해 줍니다.(맨 위 최신꺼의 commit 날짜를 수정하는 경우) $ git log 2. 아래 명령어로 수정하고 싶은 날짜의 월, 일, 시간을 입력합니다. $ git commit --amend --no-edit --date "May 29 08:00:00 2021 +0000" 3. rebase 명령어로 되돌렸던 commit을 차곡차곡 쌓아줍니다. $ git rebase --continue 그러면 아래와 같은 메세지가 나옵니다. 일단 넘어가서, fatal: No rebase in progress? 4. 날짜를 수정한 commit을 push 합니다. $ git push origin master * 이때 ..
-
[JavaScript] Vue.js 프론트 개발 (feat. REST API 통신 with Django/Flask)Frontend/Vue.js 2021. 5. 27. 21:08
Vue.js 초기 설정은 아래를 참고했습니다: https://ninano1109.tistory.com/54?category=939829 JavaScript 기반 Vue.js 웹 개발 초기 설정(feat.Node.js) 웹 개발 시 프론트엔드 개발을 위해 Django와 같은 백엔드 프레임워크에서 한번에 개발을 할 수 있지만, 큰 규모의 프로젝트를 다룬다면, 프론트와 백엔드를 분리해서 REST API로 통신하는 구조로 ninano1109.tistory.com main.js에는 Vue.js에서 개발 시 사용할 모듈들을 등록해 놓고 사용합니다. Vuex를 사용하기 위해 store와 웹 UI CSS 프레임워크인 Vuetify를 추가했습니다. # src/main.js import Vue from 'vue' impo..