添加 Dockerfile 以安装更多依赖项时出错



我正在使用这个 https://github.com/tuanavu/airflow-tutorial git 存储库,在 docker 容器中运行气流,但与此同时,我想安装其他要求。

我正在尝试安装 git 和其他一些依赖项,我已经在气流教程目录中创建了 Dockerfile。 并在文件中添加了以下行。

RUN apt-get update && 
apt-get install -y git
RUN pip install dataclasses

然后尝试用docker-compose up --build构建它

但它不断失败,错误是

ModuleNotFoundError: No module named 'dataclasses'

没有我的 Dockerfile,它工作得很好,任何人都可以帮我解决这个问题吗?

Docker-compose.yml 文件

version: '3'
services:
postgres:
image: postgres:12.3
environment:
- POSTGRES_USER=airflow
- POSTGRES_PASSWORD=airflow
- POSTGRES_DB=airflow
ports:
- "5433:5432"
webserver:
image: puckel/docker-airflow:1.10.1
build:
context: https://github.com/puckel/docker-airflow.git#1.10.1
dockerfile: Dockerfile
args:
AIRFLOW_DEPS: gcp_api,s3
PYTHON_DEPS: sqlalchemy==1.2.0
restart: always
depends_on:
- postgres
environment:
- LOAD_EX=n
- EXECUTOR=Local
- FERNET_KEY=jsDPRErfv8Z_eVTnGfF8ywd19j4pyqE3NpdUBA_oRTo=
- SSH_AUTH_SOCK=/ssh-agent
volumes:
- /home/awaish/work/airflow/dags1:/usr/local/airflow/dags
- /usr/bin/ssh-agent:/ssh-agent
# Uncomment to include custom plugins
# - ./plugins:/usr/local/airflow/plugins
ports:
- "8080:8080"
command: webserver
healthcheck:
test: ["CMD-SHELL", "[ -f /usr/local/airflow/airflow-webserver.pid ]"]
interval: 30s
timeout: 30s
retries: 3

和 Dockerfile

#WORKDIR /usr/src/app
FROM python3.7   
RUN apt-get update && 
apt-get install -y git
RUN pip3 install dataclasses
RUN pip3 install git+ssh://git@bitbucket.org/myspace/utilities.git@master

如果您能从错误文本中提供更多信息,那将很有帮助。

DataClasses 是 Pypi 提供的包,因此所有考虑这一点的事情都应该通过。pip 对错误提示它找不到数据类的回退很可能是 pip 无法访问 pypi 或等效的存储库。

我的暗示是,这可能是 docker 在构建您的映像时无法联系 pypi 的下游。

同样,如果您想提供更多错误文本,有人可以提供帮助。

请分享完整的 Dockerfile。如果这是完整的文件,则需要在 Dockerfile 中添加更多信息。阅读此答案以获得完整的理解。

最新更新