요약
- Mac에 Docker Desktop 설치 후, 하위 폴더들 생성
- Python 가상환경에 apache-airflow 설치(vscode 활용)
- docker-compose.yaml 다운로드 및 수정
- Airflow 실행 및 DAG 등 파일 경로 설정
- git 업로드
1. docker 설치
방법1(추천): Docker Desktop 설치
- 도커 공식 홈페이지에서 설치 후, 버전 확인
- 기본적으로 docker-compose가 설치됨
docker
docker --version
방법2: Brew로 설치
brew install cask docker
- 도커 사전지식 없는 경우 추천
- Docker Desktop on Mac 설치
- docker-compose, docker-machine 설치
- 포트포워딩 불필요
brew install docker
- 가상머신 위 도커 띄우는 작업 필요
- docker-compose, docker-machine 추가 설치 필요
- 포트포워딩 필요
2. apache-airflow 설치
vscode 내 가상환경 생성
- airflow 폴더 생성:
vscode/airflow
- airflow 폴더 내 가상환경(venv) 생성
- 파이썬 인터프리터 설치
Python: Select Interpreter
{'venv':venv}
설정
- 현재 디렉토리 아래
venv
라는 폴더 생성 후 가상환경 설정
python -m venv ./venv
airflow 설치
- airflow 공식 홈페이지 에서 python library 설치
- (추천) 가상환경(venv) 내 termina을 통해 설치
Successfully installed
뜨면 성공! (2024-05-06 기준)
pip install "apache-airflow[celery]==2.9.1" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.9.1/constraints-3.8.txt"
3. 도커 관리 문서(docker-compose.yaml) 설정
docker-compose.yaml 다운로드
- vscode 내 airflow 프로젝트 폴더 이동
- 해당 폴더에 docker-compose.yaml 다운로드(공식 홈페이지 / 2024-05-06 기준 버전: 2.9.1)
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.9.1/docker-compose.yaml'
vscode 내 초기 설정
- vscode 내 airflow 프로젝트 폴더에 하위 폴더 4개 생성(dags, logs, plugins, config)
- 호스트 및 컨테이터 파일 권한 설정(
.env
파일 생성)vi .env
로 파일 확인q
: 현재 세팅된 나의 os계정의 UID 가 501
- DB 마이그레이션과 계정 생성
exited with code 0
: 제대로 설치 완료- 최초 계정(ID 및 PW 모두:
airflow
)- 향후 수정 필요!
mkdir -p ./dags ./logs ./plugins ./config
# 호스트, 컨테이너 파일 권한 설정
echo -e "AIRFLOW_UID=$(id -u)\nAIRFLOW_GID=0" > .env
# DB 마이그레이션과 계정 생성
sudo docker compose up airflow-init
계정 및 패스워드 수정
- 방법1(추천): 사이트 내 수정(프로필 수정)
- Edit User 에서 계정명 변경
- Reset Password에서 비밀번호 변경
- 방법2: 생성한
.env
파일 내 설정(변수 추가)_AIRFLOW_WWW_USER_USERNAME=계정명
_AIRFLOW_WWW_USER_PASSWORD=패스워드
4. Airflow 실행
실행
- airflow 올리기(백그라운드로 실행)
- 계속 실행중인 상황 = 정상!
- Why? airflow가 기본적으로 health 체크를 기록함
- 이때, 기존 터미널 종료시 서비스가 내려가므로 꼭 새로운 터미널을 열어서 작업할 것
- 이러한 불편함을 해소하기 위해 처음 airflow 올릴 때 백그라운드로 실행(
-d
)하면 기존 terminal에서 작업 가능!
- airflow를 띄우는데 필요한 컨테이너 목록 확인
- 6개의 항목과 필요한 IMAGE 확인 가능
# upload airflow
sudo docker compose up -d
# check container
docker ps
5. 경로 설정
- 로컬에서 작성한 dag 파일 뿐만 아니라 플러그인 파일을 자동으로 Airflow에 업로드 될 수 있도록 경로를 설정함
docker-compose.yaml
내volumes:
에 해당하는 경로를 수정함${AIRFLOW_PROJ_DIR:-.}
: 현재 디렉토리를 의미
- vscode 내 airflow 프로젝트 파일에 airflow를 설치하고, yaml 파일도 설치하였기 때문에 별다른 경로 수정 불필요
/dags
: 로컬 시스템의 디렉터리 경로. 즉, 작업 중인 프로젝트의 Airflow DAG 파일이 위치한 경로:
: Host와 Container 경로를 구분하는 구분자/opt/airflow/dags
: Container 내부의 디렉터리 경로. 즉, Host에서 마운트한 파일 또는 디렉터리가 해당 경로에 들어가며, Airflow 컨테이너에서의 DAG 파일이 해당 경로에 저장됨
- ${AIRFLOW_PROJ_DIR:-.}/dags:/opt/airflow/dags
- ${AIRFLOW_PROJ_DIR:-.}/logs:/opt/airflow/logs
- ${AIRFLOW_PROJ_DIR:-.}/config:/opt/airflow/config
- ${AIRFLOW_PROJ_DIR:-.}/plugins:/opt/airflow/plugins
6. git 업로드
- 참고사항: Git 개념 정리
Link to original# 1. 초기 작업 git init git remote add origin <url> # 2. git 저장 git add <file> git commit -m "<message>" git push -u origin <branch_name>
0. 환경 초기화
문제 발생 시 초기화를 권장
아래 코드를 통해 설치한 파일 모두 지우고, 처음부터 재실행
# docker-compose.yaml 파일이 있는 경로에서 다음 실행
docker-compose down --volumes --remove-orphans
# docker-compose.yaml 파일 위치한 경로 제거
rm -rf <DIRECTORY>
참고 사이트