gpt4 book ai didi

java - 约 10 秒后与 Airflow docker 容器断开连接

转载 作者:行者123 更新时间:2023-12-02 09:21:49 28 4
gpt4 key购买 nike

我成功创建并启动了这个容器:

https://github.com/puckel/docker-airflow

通过运行:

docker build --rm --build-arg AIRFLOW_DEPS="datadog,dask" --build-arg PYTHON_DEPS="flask_oauthlib>=0.9" -t puckel/docker-airflow .

docker-compose -f docker-compose-CeleryExecutor.yml up -d

然后我只想将 java 添加到图像中:

我在最后添加:

https://github.com/puckel/docker-airflow/blob/master/Dockerfile#L83

USER airflow
WORKDIR ${AIRFLOW_USER_HOME}
ENTRYPOINT ["/entrypoint.sh"]
CMD ["webserver"] # set default arg for entrypoint

# my new code :
USER root
RUN mkdir -p /usr/share/man/man1/

# Install OpenJDK-8
RUN apt-get update && \
apt-get install -y openjdk-8-jdk && \
apt-get install -y ant && \
apt-get clean;

# Fix certificate issues
RUN apt-get update && \
apt-get install ca-certificates-java && \
apt-get clean && \
update-ca-certificates -f;
# Setup JAVA_HOME -- useful for docker commandline
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/

构建并运行容器后,我正在尝试像安装 java 之前那样进行连接:

docker exec -it docker-airflow_worker_1 /bin/bash

但我自动断开连接。并且安装了java

root@5475d28fb5f5:/usr/local/airflow# java -version 
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-8u232-b09-1~deb9u1-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
root@5475d28fb5f5:/usr/local/airflow# %

当我记录容器时:

User information: uid=0 euid=0 gid=0 egid=0

[2019-10-31 12:07:40,312] {{settings.py:213}} INFO - settings.configure_orm(): Using pool settings. pool_size=5, max_overflow=10, pool_recycle=1800, pid=1
/usr/local/lib/python3.7/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
""")
[2019-10-31 12:07:40,621] {{__init__.py:51}} INFO - Using executor CeleryExecutor
Running a worker with superuser privileges when the
worker accepts messages serialized with pickle is a very bad idea!

If you really want to continue then you have to set the C_FORCE_ROOT
environment variable (but please think about this before you do).

User information: uid=0 euid=0 gid=0 egid=0

有人可以帮忙吗?

谢谢

最佳答案

因此,您在 Dockerfile 中将用户更改为 root,并且 Airflow 现在拒绝启动。尝试将 Dockerfile 中的新代码移到 USER airflow 行之前。您也可以在此之后删除 USER root 行。

关于java - 约 10 秒后与 Airflow docker 容器断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58643093/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com