OS : Ubuntu-Jammy-22.04-amd64-server
인스턴스 유형 : t2.xlarge
Airflow Tutorial에 docker-compose.yaml 파일이 있는데
인터넷이 연결되어있다면 curl로 다운로드 받을 수 있다.
아니라면 파일을 생성해서 복붙한다.
Airflow Tutorial - docker
pwd
# /home/ubuntu
mkdir -p Documets/materials
cd Documets/materials
# 방법1. curl로 다운로드
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.3.4/docker-compose.yaml'
#방법2. 파일 생성
vi docker-compose.yaml
docker-compose.yaml 에는 아래 서비스 정의가되어있다.
mkdir -p ./dags ./logs ./plugins
echo -e "AIRFLOW_UID=$(id -u)" > .env
vi .env
## 아래 내용 추가
AIRFLOW_IMAGE_NAME=apache/airflow:<2.3.0>
AIRFLOW_UID=50000
docker-compose up airflow-init
# airflow 최초 설치 시 metadatabase 초기화 명령어
airflow initdb
docker-compose ps
docker logs <materials_name_of_the_container>
docker-compose down --volumes --remove-orphans
# docker-compose.yaml 다운받은 디렉토리 제거하고 다시 다운로드, 시작
포트는 default로 8080으로 설정되어있다.
ID/PW 는 airflow/airflow 이다.
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.3.4/airflow.sh'
chmod +x airflow.sh
@ airflow.sh
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
set -euo pipefail
export COMPOSE_FILE="${PROJECT_DIR}/docker-compose.yaml"
if [ $# -gt 0 ]; then
exec docker-compose run --rm airflow-cli "${@}"
else
exec docker-compose run --rm airflow-cli
fi
airflow.sh 파일을 다운/생성했다면 더 간결하게 명령어를 사용할 수 있다.
# docker-compose run airflow-worker airflow info ->
./airflow.sh info
./airflow.sh bash
./airflow.sh python
컨테이너를 중지 및 삭제하려면 데이터베이스 데이터가 있는 볼륨을 삭제하고 이미지를 다운로드하고 다음을 실행합니다.
# 컨테이너 전체 중지 및 삭제
docker-compose down --volumes --rmi all
Apache Airflow Tutorial - Docker
https://airflow.apache.org/docs/apache-airflow/stable/start/docker.html#customizing-the-quick-start-docker-compose