docker
-
[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..
-
[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이 없기 때문에 ..
-
[Docker] Dockerfile 도커파일 이미지 빌드 시 환경변수 전달 방법(Feat. ARG, ENV)Docker 2021. 5. 19. 21:49
docker image 빌드 1. 이미지 빌드 명령어 입력 시 ARG로 TIMESTAMP 환경변수 전달 2. docker 이미지 빌드 과정에서 Dockerfile ARG 변수 정의(기존 값 대체=재정의) 3. Dockerfile ENV 변수 NAME 생성 4. TIMESTAMP와 NAME 변수로 이루어진 ENV 변수 VISITOR 생성(CMD 실행 목적, ARG는 불가) docker container 실행 5. 빌드한 이미지로 docker 컨테이너 실행 시 CMD 명령어로 ENV 환경변수 VISITOR 출력 Dockerfile 코드 # 도커 이미지 빌드 시 사용 환경변수(ARG) ARG TIMESTAMP # 도커 컨테이너 실행 시 CMD에서 사용 환경변수(ENV) ENV NAME="MyName" ENV ..
-
[Docker] 도커 기본 명령어 모음Docker 2021. 5. 16. 22:23
What is Docker? | 도커를 사용한다는 건 결국 이미지를 이용해서 컨테이너를 생성하고 실행하는 것 Docker를 사용한 웹 서버 구축하기 0. Docker 설치 https://ninano1109.tistory.com/160 Docker Ubuntu 도커 우분투 설치 (feat. docker 이미지 pull하기) 시스템 최신 업데이트 $ sudo apt update 사전 설치 진행 $ sudo apt install apt-transport-https ca-certificates curl software-properties-common Docker repository key 추가하기 $ curl -fsSL https://d.. ninano1109.tistory.com 1. Docker 이미지(n..
-
[Docker] docker 도커 실행 오류 및 재시작 해결 방법Docker 2021. 5. 13. 22:17
도커 이미지 빌드 후 컨테이너 실행 시 엔진이 실행되어 있어야 하는데, 아래와 같은 에러 메세지가 나온다면 도커 엔진에 문제가 있을 수 있으므로 restart를 해주었습니다. 0.911 container_linux.go:367: starting container process caused: process_linux.go:495: container init caused: rootfs_linux.go:60: mounting "proc" to rootfs at "/proc" caused: invalid argument failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to do request: Head htt..