繁体   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