Webservice在Airflow docker容器中无法使用。

我使用Dockerfile为airflow创建了一个docker容器,我需要在任何人运行docker镜像时运行两个webservice。当有人运行docker镜像时,我需要运行两个webservice,我使用ENTRYPOINT通过entrypoint脚本来执行运行web服务。我使用 ENTRYPOINT 通过 entrypoint 脚本来执行运行 web 服务。当我在docker容器中运行时,只有一个web服务在运行,另一个没有,但如果我在docker容器中运行同一个脚本,那么两个web服务都在运行。

我想运行airflow服务 “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文档:

一般建议您通过在每个容器中使用一个服务来分离关注区域。

Puckeldocker-airflow 以获取利用每个服务的单独容器的 Airflow 实施示例。

给TA打赏
共{{data.count}}人
人已打赏
未分类

Github Typescript --> Javascript diff比较

2022-9-8 8:15:37

未分类

特征工具DFS与分类编码的比较

2022-9-8 8:15:39

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索