簡體   English   中英

Web服務在 Airflow docker 容器中不起作用

[英]Webservice not working in Airflow docker container

我使用 Dockerfile 為 airflow 創建了一個 docker 容器。 當有人運行 docker 映像時,我需要運行兩個 Web 服務。 我正在使用 ENTRYPOINT 通過入口點腳本執行運行 web 服務。 雖然我正在運行 docker 容器,但只有一個 web 服務正在運行,而其他沒有,但如果我進入 docker 容器並運行相同的腳本,那么兩個 webservice 都在運行。

我想運行 airflow services 'airflow webserver' 和 'airflow scheduler'

>entrypoint.sh file 
-----------------------------
#!/usr/bin/env bash
airflow initdb
airflow webserver -D
airflow scheduler -D
exec "$@"
-----------------------------

>Dockerfile
-----------------------------------------------
FROM ubuntu:16.04
LABEL "Created_By"="------"
#Python installation
##pip3
RUN apt update -y && \
    apt upgrade -y && \
    apt-get install -y apt-utils 
RUN apt-get install -y python-setuptools && \
    apt-get install -y python-pip && \
    apt-get install -y python3-pip && \
    pip install --upgrade pip && \
    apt-get install -y libmysqlclient-dev && \
    pip install wtforms==2.2.1 && \
    pip install apache-airflow && \
    pip install apache-airflow[mysql] 

WORKDIR /script/
COPY entrypoint.sh .
RUN chmod -R 0705 /script/
ENTRYPOINT [ "./entrypoint.sh" ]

我不明白為什么只有一項服務正在運行

嘗試以分離模式運行容器:

docker run -d <IMAGE>

然后像這樣進入容器:

docker exec -it <CONTAINER> bash

這對我來說適用於您的代碼。


旁注:您不應該在一個容器中運行多個服務。 Docker 文檔

通常建議您通過每個容器使用一項服務來分隔關注區域。

有關 Airflow 的示例實現,請參閱puckel/docker-airflow ,該示例實現為每個服務使用單獨的容器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM