iT邦幫忙

0

docker compose 搭配 nginx 以及 ngrok 部屬 airflow

  • 分享至 

  • xImage

如題,小弟最近想嘗試使用 docker compose 搭配 nginx 以及 ngrok 進行部屬 airflow,由於 nginx 之前沒有接觸過,希望能協助解惑該如何設定 docker-compose 以及 nginx.conf,非常感謝各路大神的指教

碰到的問題主要有兩個:

  1. nginx 這個 container 一直起不起來
  2. 假設都起起來了該如何知道要使用哪個 ngrok 的網址連到我部屬好的 airflow

想達成的目標如下:

  • airflow 部屬在 8000 port
  • nginx 希望可以在輸入 /airflow 時導流到 airflow 中

下方為設定檔:

  • docker-compose.yaml (有稍微整理過,完整的可以看 這個網址)

services:
  nginx:
    image: nginx
    container_name: nginx
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    ports:
      - "8080:8080"

  ngrok:
    image: wernight/ngrok:latest
    ports:
      - "4040:4040"
    environment:
      NGROK_PROTOCOL: http
      NGROK_PORT: nginx:443
      NGROK_AUTH: ${NGROK_AUTH}
    depends_on:
      - nginx

  airflow-webserver:
    <<: *airflow-common
    command: webserver
    ports:
      - "8000:8000"
    healthcheck:
      test: ["CMD", "curl", "--fail", "http://localhost:8080/health"]
      interval: 10s
      timeout: 10s
      retries: 5
    restart: always
    depends_on:
      <<: *airflow-common-depends-on
      airflow-init:
        condition: service_completed_successfully
  • nginx.conf
server {
    listen 80;
    server_name *.ngrok.itcuc.cc ngrok.itcuc.cc;

    location /airflow {
        proxy_pass      http://127.0.0.1:8000;
    }
}

備註:
git 不允許 push 空目錄到 github 上,因此如果有需要在本地端執行的話記得先建立 dags、logs 以及 plugins 三個目錄,如下圖

https://ithelp.ithome.com.tw/upload/images/20221013/201440242mtg0uD96p.png

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
herrowei135
iT邦新手 4 級 ‧ 2022-10-14 07:57:25

ngrok指定port開起來之後就會有一個網址給你可以從外面連到本機阿 你要找的只是nginx的設定而已吧

看更多先前的回應...收起先前的回應...

目前還有查到如果透過 docker 開 ngrok 該去哪裡看那個網址,會先朝這個方向進行 謝謝

obarisk iT邦研究生 1 級 ‧ 2022-10-14 10:00:24 檢舉
obarisk iT邦研究生 1 級 ‧ 2022-10-14 10:01:12 檢舉

兩件事分開

  1. ngrok 現在可以找到你的 nginx 了嗎?
  2. nginx 有正確 reverse proxy 了嗎?

OK 我試著分開問題去試試看 感謝回復

我要發表回答

立即登入回答