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