Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Python
- polars
- dbt_project
- kafka
- 도커
- DBT
- 파이썬
- CDC
- 카프카
- 모바일
- 윈도우
- docker
- spring boot
- proerty
- airflow
- bar cahrt
- UI for kafka
- Java
- query history
- spark
- 동적 차트
- 크롤링
- 쿠버네티스
- freshness
- mysql
- numpartitions
- k9s
- ksql
- KubernetesPodOperator
- Materializations
Archives
- Today
- Total
데이터 엔지니어 이것저것
DockerOperator 본문
728x90
KubernetesPodOperator 작업을 하기위해 로컬에서 테스트할수있는 방법들을 찾다가 도커 오퍼레이터를 찾았다.
로컬 환경에서 docker-compose 및 celery Executor 환경에서도 도커 이미지를 올리고 내리면서서 테스트 할수있을것같다.
from datetime import datetime
from airflow import DAG
from airflow.providers.docker.operators.docker import DockerOperator
default_args = {
'owner': 'airflow',
'start_date': datetime(2023, 1, 1),
}
dag = DAG(
'run_docker_image_example',
default_args=default_args,
schedule_interval='@daily',
catchup=False,
)
run_hello_world = DockerOperator(
task_id='run_hello_world',
docker_url='tcp://docker-proxy:2375',
image='hello-world-python:latest',
api_version='auto',
auto_remove=True,
dag=dag,
)
run_hello_world
쉽게 로컬에 있는 hello-word-python이라는 도커이미지를 실행하는 코드이다.
여기서 봐야할점은 docker_url의 주소이다
워커에서 바로 실행을 하면 권한이 없다고 뜬다
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', PermissionError(13, 'Permission denied'))
구글링 하다보면 권한을 주라고 하는데, 테스트 하는데 여러가지 권한까지 부여하고 하기엔 부담스럽다
docker-proxy:
image: bobrik/socat
command: "TCP4-LISTEN:2375,fork,reuseaddr UNIX-CONNECT:/var/run/docker.sock"
ports:
- "2376:2375"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
docker-compose의 서비스에 해당 도커 이미지를 추가하여 우회하게 한다.
몇번의 시도 끝에 해결
728x90
'오픈소스 > airflow' 카테고리의 다른 글
airflow parallelism (0) | 2023.10.16 |
---|---|
KubernetesPodOperator (0) | 2023.10.15 |
Airflow DAG간 종속성 (0) | 2022.05.15 |
Airflow DAG 분리하기 (0) | 2022.02.05 |
airflow vs argo (0) | 2021.12.27 |