[英]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.