다용도 로컬 파이프라인 구성 6

Poetry + 도커컨테이너 모듈 의존성 간편화2

이전포스트과거 잘못된 도커 내 poetry 설치(https://makenow90.tistory.com/3)배경저번에 1편에서 컨테이너에 poetry를 설치하는데는 성공했지만, 도커 내에 poetry 가상환경을 만든꼴이 됐다.poetry는 의존성 관리에만 사용하고, 도커 내에서는 가상환경을 실행하지 않도록 바꾸려한다.도커파일FROM apache/airflow:2.7.3USER root# 필요한 시스템 패키지 설치# 1줄: 패키지 관리 시스템이 최신 패키지 정보를 얻도록 함.# 2줄: 원격 서버에 SSH 프로토콜을 통해 접속할 수 있게 함.# -y 설치중 사용자 확인을 자동으로 승인# 3줄: 다운로드한 패키지 파일을 삭제하여 캐시를 정리,# 디스크 공간을 절약해 이미지 크기를 줄임# 4줄: apt-get u..

airflow.cfg 상세 분석

[core]# 컨테이너 내에 dag를 저장하는 경로# 이 경로는 절대 경로여야 합니다.dags_folder = /opt/airflow/dags# 호스트 이름을 결정하는 데 사용되는 호출 가능한 경로를 제공합니다.# 호스트 이름은 DAG 실행 및 로깅, 웹 인터페이스에서의 표시, 이메일 알림 및 알림 메시지, 로그 및 지표 수집 시의 식별에 사용됨# 형식은 "package.function"입니다.# 예: 기본값 "airflow.utils.net.getfqdn"은 patched 된# 버전의 socket.getfqdn()의 결과를 나타냅니다 - https://github.com/python/cpython/issues/49254.## 함수에서 인수가 필요하지 않아야 합니다.# 호스트 이름으로 IP 주소를 사용하..

도커 컨테이너에서 외부 셀레니움 실행 3

목표저번까지는, 예제 코드를 실행시켰는데, 실제 셀레니움 코드를 실행 시켜보자.과정처음 dag 코드 실패(그런데 vscode에서 실행했을땐 동작했었다 ;;)run_external_script = SSHOperator( task_id='run_external_script', ssh_conn_id='ssh_default', command='python C:\\script\\my_script.py' )외부의 스크립트를 실행한거라 오류 내용이 출력이 안됨. 따라서 오류 로그를 출력하는 메모장을 추가"python C:\script\my_script.py > C:\script\log.txt" : 우선 my_script.py를 실행하고 그 출력내용을 log.txt로 보내"2>&1" : (..

도커 컨테이너에서 외부 셀레니움 실행 2

요약 : 외부 스크립트(셀레니움으로 제작된)를 실행시키기 위한 dag 작성.우선 셀레니움 기능을 하는 코드 대신, 메모장을 생성하는 코드로 테스트 했다. 배경지식UTF-8 인코딩 : 유니코드를 사용하는 인코딩 방식으로, 세계의 거의 모든 문자 체계를 하나의 인코딩으로 표현할 수 있습니다. 따라서 다양한 언어나 특수 문자를 포함할 가능성이 있는 파일을 다룰 때는 encoding='utf-8'을 사용하는 것이 안전하고 효과적인 방법이다. 다양한 시스템과 플랫폼 간에 호환되는 방식으로 데이터를 전송하거나 저장할 수 있다.Base64 인코딩 : 기존 ASCII 코드는 시스템간 데이터를 전달하기에 안전하지 않다. 모든 Binary 데이터가 ASCII 코드에 포함되지 않으므로 제대로 읽지 못한다.  Base64는 ..

도커 컨테이너에서 외부 셀레니움 실행 1

실습환경 : 명령프롬프트(cmd) 배경운영체제는 윈도우10을 사용.현재 윈도우 내 리눅스(우분투)에 airflow 컨테이너를 구축한 상황.도커 내부에서 셀레니움을 실행시킨적이 있다. 정말 토나온다. 구축의 난이도는 2째로 놓고 봐도.리눅스 환경이라, 셀레니움의 가장 강점(동작이 보여서 오류 위치를 찾을수 있다) 를 포기해야한다.따라서 컨테이너 외부 비주얼한 환경(윈도우)에 셀레니움 스크립트를 저장하고, 실행시키고자 한다. 전체 순서윈도우 내 ssh 설정으로 외부에서 접근 가능하게 수정(여기서 할 것)airflow로 윈도우에 my_script.py 파일을 생성하고 실행시켜 테스트실제로 my_script.py에 셀레니움 코드를 넣고 테스트 윈도우 내 ssh 설정으로 외부에서 접근 가능하게 수정윈도우 검색창에..

Poetry + 도커컨테이너 모듈 의존성 간편화1

실습환경 : 윈도우 내 리눅스(우분투) Poetry의 기능의존성 관리: Poetry는 프로젝트의 모든 의존성을 한 곳에서 관리할 수 있습니다. 의존성을 설치, 업데이트, 제거하는 작업을 쉽게 수행할 수 있습니다.가상환경 관리: Poetry는 각 프로젝트마다 가상환경을 자동으로 생성하고 관리합니다. 이를 통해 의존성 충돌을 피하고, 프로젝트 간 독립성을 유지할 수 있습니다.패키징 및 배포: Poetry는 프로젝트를 패키징하고 배포하는 과정을 간단하게 처리할 수 있습니다. pyproject.toml 파일에 정의된 정보를 바탕으로 패키징을 수행합니다.requirements 시럽자..Poetry 설치방법프로젝트 이름을 에어플로우로 하고 폴더 만듦$ mkdir airflowairflow 폴더로 이동$ cd air..