묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[기초 2.5부] OpenClaw.AI 마스터 클래스: 멀티 에이전트 팀의 설계와 역할 분리 기초
온보딩 가이드에 openclaw 어느 버전쓴다고 안나와있네요
사용 버전도 그렇고 키도 어디서 얻는지도 안나와 있네요전 기초 2.5부터 듣는데요. opneclaw 키는 어디서 구하나요?
-
미해결Airflow 완벽 가이드 - Part 1
astro dev start - python 라이브러리 설치 fail
[+] Building 353.8s (9/10) docker:desktop-linux => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 81B 0.0s => [internal] load metadata for astrocrpublic.azurecr.io/runtime:3.2-2 2.2s => [internal] load .dockerignore 0.0s => => transferring context: 113B 0.0s => [1/1] FROM astrocrpublic.azurecr.io/runtime:3.2-2@sha256:466a3e0a33a285fcde43340d6b10dc529284c19ea306e004c2e47d8295e6754d 0.0s => => resolve astrocrpublic.azurecr.io/runtime:3.2-2@sha256:466a3e0a33a285fcde43340d6b10dc529284c19ea306e004c2e47d8295e6754d 0.0s => [internal] load build context 0.0s => => transferring context: 1.21kB 0.0s => CACHED [2/8] ONBUILD COPY packages.txt . 0.0s => CACHED [3/8] ONBUILD RUN /usr/local/bin/install-system-packages 0.0s => CACHED [4/8] ONBUILD COPY requirements.txt . 0.0s => ERROR [5/8] ONBUILD RUN /usr/local/bin/install-python-dependencies 351.0s ------ > [5/8] ONBUILD RUN /usr/local/bin/install-python-dependencies: 0.349 + /usr/local/bin/install-python-dependencies 0.360 Installing python dependencies using uv 0.580 Using Python 3.13.13 environment at: /usr/local 63.58 Resolved 198 packages in 1m 00s 63.68 Downloading flask-appbuilder (2.1MiB) 63.68 Downloading polars-runtime-32 (43.1MiB) 64.31 Downloading botocore (14.3MiB) 64.31 Downloading pyarrow (46.6MiB) 64.32 Downloading lxml (5.0MiB) 64.32 Downloading adbc-driver-manager (4.5MiB) 64.37 Downloading sqlean-py (2.9MiB) 64.37 Downloading connectorx (41.7MiB) 64.38 Downloading adbc-driver-sqlite (1.5MiB) 133.1 Downloaded adbc-driver-sqlite 149.2 Downloaded flask-appbuilder 181.5 Downloaded sqlean-py 206.7 Building pandas==2.1.4 223.0 Downloaded adbc-driver-manager 233.4 Downloaded lxml 345.7 Downloaded botocore 348.0 Building numpy==1.26.4 350.4 × Failed to build `numpy==1.26.4` 350.4 ├─▶ The build backend returned an error 350.4 ╰─▶ Call to `mesonpy.build_wheel` failed (exit status: 1) 350.4 350.4 [stdout] 350.4 + /tmp/.tmpsTSE7P/builds-v0/.tmpEbhjPZ/bin/python 350.4 /tmp/.tmpsTSE7P/sdists-v9/index/dac0d3b231508420/numpy/1.26.4/XkQbLab9UzRfRV7eP-5zy/src/vendored-meson/meson/meson.py 350.4 setup 350.4 /tmp/.tmpsTSE7P/sdists-v9/index/dac0d3b231508420/numpy/1.26.4/XkQbLab9UzRfRV7eP-5zy/src 350.4 /tmp/.tmpsTSE7P/sdists-v9/index/dac0d3b231508420/numpy/1.26.4/XkQbLab9UzRfRV7eP-5zy/src/.mesonpy-39t2gzuy 350.4 -Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md 350.4 --native-file=/tmp/.tmpsTSE7P/sdists-v9/index/dac0d3b231508420/numpy/1.26.4/XkQbLab9UzRfRV7eP-5zy/src/.mesonpy-39t2gzuy/meson-python-native-file.ini 350.4 The Meson build system 350.4 Version: 1.2.99 350.4 Source dir: 350.4 /tmp/.tmpsTSE7P/sdists-v9/index/dac0d3b231508420/numpy/1.26.4/XkQbLab9UzRfRV7eP-5zy/src 350.4 Build dir: 350.4 /tmp/.tmpsTSE7P/sdists-v9/index/dac0d3b231508420/numpy/1.26.4/XkQbLab9UzRfRV7eP-5zy/src/.mesonpy-39t2gzuy 350.4 Build type: native build 350.4 Project name: NumPy 350.4 Project version: 1.26.4 350.4 350.4 ../meson.build:1:0: ERROR: Unknown compiler(s): [['cc'], ['gcc'], 350.4 ['clang'], ['nvc'], ['pgcc'], ['icc'], ['icx']] 350.4 The following exception(s) were encountered: 350.4 Running `cc --version` gave "[Errno 2] No such file or directory: 'cc'" 350.4 Running `gcc --version` gave "[Errno 2] No such file or directory: 350.4 'gcc'" 350.4 Running `clang --version` gave "[Errno 2] No such file or directory: 350.4 'clang'" 350.4 Running `nvc --version` gave "[Errno 2] No such file or directory: 350.4 'nvc'" 350.4 Running `pgcc --version` gave "[Errno 2] No such file or directory: 350.4 'pgcc'" 350.4 Running `icc --version` gave "[Errno 2] No such file or directory: 350.4 'icc'" 350.4 Running `icx --version` gave "[Errno 2] No such file or directory: 350.4 'icx'" 350.4 350.4 A full log can be found at 350.4 /tmp/.tmpsTSE7P/sdists-v9/index/dac0d3b231508420/numpy/1.26.4/XkQbLab9UzRfRV7eP-5zy/src/.mesonpy-39t2gzuy/meson-logs/meson-log.txt 350.4 350.4 hint: This usually indicates a problem with the package or the build 350.4 environment. ------ Dockerfile:1 -------------------- 1 | >>> FROM astrocrpublic.azurecr.io/runtime:3.2-2 2 | -------------------- ERROR: failed to build: failed to solve: process "/bin/bash -o pipefail -e -u -x -c /usr/local/bin/install-python-dependencies" did not complete successfully: exit code: 1 What's next: Debug this build failure with Gordon → docker ai "help me fix this build failure" Error: an error was encountered while building the image, see the build logs for details 위 같은 에러가 나서 명령어 docker ai "help me fix this build failure" 로 docker ai 에 진입하고 Gordon 이 requirement.txt 의 버전을 변경했습니다. 바뀐 버전으로 astro dev start 명령어로 build 성공했습니다. # Astro Runtime includes the following pre-installed providers packages: https://www.astronomer.io/docs/astro/runtime-image-architecture#provider-packages apache-airflow-providers-fab apache-airflow-providers-http==5.4.0 apache-airflow-providers-amazon==9.20.0 apache-airflow-providers-mysql==6.4.1 apache-airflow-providers-postgres==6.5.1 numpy>=2 pandas>=2.2 polars[database]==1.37.1 #adbc-driver-manager #adbc-driver-postgresqlai 진단시 메세지 보니까 python 3.13 기반으로 의존성 맞춰주는거 같더라구요.이렇게 변경된 의존성으로 실습 진행해도 될까요?
-
미해결Airflow 완벽 가이드 - Part 1
astro project 실무 적용 질문
안녕하세요! 강의 재밌게 수강하고 있습니다.몇가지 질문드립니다. 수업에서 astro project를 설치하고 로컬 호스트가 아닌 scheduler 컨테이너에 접속하여 직접 dags 파일들을 수정한 이유가 있을까요?제가 이해하기로는 로컬 호스트에서 dags, include, plugins 디렉토리는 각 컨테이너에 공유되기 때문에 로컬 호스트에 있는 코드를 수정하면 될 것 같은데, scheduler의 컨테이너에 직접 접속하여 수정한 이유가 궁금합니다.또한, 실무에서 airflow dev 환경에서 빠르게 테스트하기 위해 컨테이너에 직접 접속하여 코드 수정 및 확인 하는 케이스가 있으신지도 궁금합니다!현재 업무에서 일부 airflow를 직접 구성해서 사용하고 있는데, 로컬에서의 테스트가 불가능(Hive 연동 등으로 인하여)하여 항상 dev 환경에 배포 후 결과를 확인하고 있습니다.강사님께서는 airflow를 운영 및 개발 하시면서 로컬에서 테스트할 수 있는 환경(astro 등)을 구성하여 사용하고 계시는지도 궁금합니다.
-
미해결Airflow 완벽 가이드 - Part 1
강사님의 로그포맷과 저의 로그포맷이 차이가 있는것 같습니다.
강사님 로그 포맷저의 로그포맷어떤 부분을 수정해야 할까요?
-
미해결Airflow 완벽 가이드 - Part 1
7 강에서 astro dev start를 하는데, localhosst8080화면이 안뜹니다
선생님 안녕하세요.....7강중간까지 무사히 따라왓는데, astro dev start치면 아래사진과 같은 에러로 localhosst8080화면이 뜨질 안습니다 ㅠㅠ 제가 도커 등 완전 초보라서 알기쉽게 조언 좀 부탁드립니다 ㅎㅎㅎ ㅠ
-
미해결Airflow 완벽 가이드 - Part 1
astro dev start에서 building 시간이 깁니다.
안녕하세요. github파일에서 requirements.txtdocker-compose.yml.env 파일 다운후, 아래와 같이 바꿔준뒤에 astro dev start를 했는데요, 처음에는 빌딩하는데 오래 걸리겠거니 했는데, 강의를 듣는 과정에서 너무 오래 걸리네요. 빌딩이 얼마나 걸리는지 알 수 있을까요? 대략 1시간 정도 지났습니다.
-
미해결쿠버네티스 대신 도커 SWARM 사용 방법 핵심 강의
Docker Swarm과 Traefik을 활용한 MSA 아키텍처 설계 방식
안녕하세요.Docker Swarm 기반 마이크로서비스 아키텍처(MSA)를 구성 중입니다. 처음에는 Traefik을 이용해 모든 내부 마이크로서비스를 거치도록 (즉, serviceA가 serviceB를 호출할 때도 Traefik을 통해서만 통신) 운영하려고 했습니다. 그런데 그렇게 할 경우 아래와 같은 문제가 예상됩니다:성능/오버헤드모든 내부 트래픽이 Traefik을 중간에 두고 오가므로, 네트워크 홉이 추가됩니다.Keep-Alive 연결이 많아지고, Traefik이 병목이 될 가능성이 있음.복잡한 설정내부 수많은 서비스가 각각 Traefik의 라우터/서비스 규칙을 가져야 하므로 라벨 설정이 매우 복잡해질 수 있음.Path/Host 기반 라우팅 규칙도 내부 API 전부에 대해 관리해야 하므로 관리 부담 증가.인증/인가가 불필요한 내부 통신외부 노출이 전혀 필요 없는 내부 서비스 등까지도 Traefik을 거치는 것은 과도할 수 있음. 이러한 이유로, Traefik이 모든 트래픽을 일괄 처리하는 대신, 내부 통신은 Docker Swarm 로드밸런싱으로 처리하고, 외부 트래픽(HTTPS/도메인/인증서)은 Traefik에 맡기는 구조로 변경하려고 합니다. 구체적으로는,Docker Swarmservice 간에는 “user-service:8001” 식으로 연결 → Swarm 라운드 로빈Keep-Alive나 오토스케일 시 컨테이너가 늘어나면 Swarm이 자동 분산Traefik오직 외부 접근이 필요한 Gateway나 public API에 대해서만 라벨(traefik.enable=true) 적용HTTPS 인증서, Path/Host 라우팅, 미들웨어(인증/인가, IP 제한)를 외부 경계에서만 적용내부적으로는 Swarm에 맡기고, Traefik은 외부→Gateway(혹은 외부→공개 서비스)만 처리네트워크 분리“public-net”: Traefik, Gateway 등 외부 노출이 필요한 서비스“backend-net”: user-service 등 내부용 서비스만 존재, 외부와 직접 연결되지 않음궁금한 점위와 같은 구조(외부는 Traefik, 내부는 Swarm + 네트워크 분리)가 흔히 권장되는 방식인가요?내부 서비스까지 Traefik을 거치는 구조가 과연 득보다 실이 많을지, 실제 운영 사례가 궁금합니다. 보안 측면에서 “Traefik + Swarm ” 방식을 쓸 때 주의해야 할 점이나, 더 권장되는 패턴이 있으면 알려주세요!감사합니다.
-
미해결쿠버네티스 대신 도커 SWARM 사용 방법 핵심 강의
질문드립니다.
해당 부분 혹시 조인하여 확인하였습니다만\_ svc_spring2.1 virnect0073/test-spring:test-9090 node2 Shutdown이부분은 오류가 있는걸까요? traefik를 사용했어도 매니져노드에 docker container ls 라고 검색하면 결과값이 나오나요?
-
미해결쿠버네티스 대신 도커 SWARM 사용 방법 핵심 강의
도메인을 구매 안했다면
개인 로컬에 등록 하는 법도 있을까요? 서버 두대로
-
미해결쿠버네티스 대신 도커 SWARM 사용 방법 핵심 강의
404 에러
traefik.yamlservices: traefik: image: traefik ports: - target: 80 published: 80 mode: host protocol: tcp - target: 443 published: 443 mode: host protocol: tcp - 9001:9001 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - /var/log/traefik:/var/log/traefik - traefik-certificates:/certificates deploy: mode: global placement: constraints: - node.labels.traefik-public.traefik-certificates == true labels: - traefik.enable=true - traefik.docker.network=traefik-public - traefik.constraint-label=traefik-public - traefik.http.middlewares.https-redirect.redirectscheme.scheme=https - traefik.http.middlewares.https-redirect.redirectscheme.permanent=true - traefik.http.routers.traefik-public-http.rule=Host(`test.shop`) - traefik.http.routers.traefik-public-http.entrypoints=traefik-ui - traefik.http.routers.traefik-public-http.middlewares=https-redirect - traefik.http.routers.traefik-public-https.rule=Host(`test.shop`) - traefik.http.routers.traefik-public-https.entrypoints=traefik-ui - traefik.http.routers.traefik-public-https.tls=true - traefik.http.routers.traefik-public-https.service=api@internal - traefik.http.routers.traefik-public-https.tls.certresolver=le - traefik.http.routers.traefik-public-https.middlewares=admin-auth - traefik.http.services.traefik-public.loadbalancer.server.port=8080 - "traefik.http.middlewares.non-www-to-www.redirectregex.regex=^https?://(?:www\\.)?(.+)" - "traefik.http.middlewares.non-www-to-www.redirectregex.permanent=true" - "traefik.http.middlewares.non-www-to-www.redirectregex.replacement=https://www.$${1}" update_config: order: stop-first command: - --providers.swarm.network=traefik-public - --providers.swarm.constraints=Label(`traefik.constraint-label`, 'traefik-public') #v3 버전 전용 코드 - --providers.swarm.exposedbydefault=false - --providers.swarm.endpoint=unix:///var/run/docker.sock - --entrypoints.http.address=:80 - --entrypoints.https.address=:443 - --certificatesresolvers.le.acme.email=email - --certificatesresolvers.le.acme.storage=/certificates/acme.json - --certificatesresolvers.le.acme.tlschallenge=true - --accesslog.bufferingsize=100 - --accesslog.filepath=/var/log/traefik/traefik-access.log - --accesslog.fields.defaultmode=keep - --accesslog.fields.names.ClientUsername=drop - --accesslog.fields.headers.defaultmode=keep - --accesslog.fields.headers.names.User-Agent=keep - --accesslog.fields.headers.names.Authorization=drop - --accesslog.fields.headers.names.Content-Type=keep - --log - --api - --entrypoints.traefik-ui.address=:9001 networks: - "traefik-public" volumes: traefik-certificates: {} networks: traefik-public: name: traefik-public external: true app.yamlservices: flask: image: 192.168.219.114:5000/fastapi-helloworld networks: - traefik-public deploy: labels: - "traefik.enable=true" - "traefik.http.routers.flask.rule=Host(`test.shop`)" - "traefik.http.routers.flask.entrypoints=http" - "traefik.http.routers.flask.middlewares=https-redirect" - "traefik.http.routers.flask-https.rule=Host(`test.shop`)" - "traefik.http.routers.flask-https.entrypoints=https" - "traefik.http.routers.flask-https.tls=true" - "traefik.http.routers.flask-https.tls.certresolver=le" - "traefik.docker.network=traefik-public" - "traefik.constraint-label=traefik-public" - "traefik.http.services.flask-https.loadbalancer.server.port=8080" networks: traefik-public: name: traefik-public external: true stack 배포하고 test.shop 접속 시 404 에러가 발생합니다.현재 애플리케이션 컨테이너의 포트는 8080으로 설정되어있습니다.원인이 뭘까요??
-
해결됨쿠버네티스 대신 도커 SWARM 사용 방법 핵심 강의
13:00
13:00 에서 서비스의 연결 포트는 어떤 포트를 의미하는 건가요?