Ошибка при добавлении файла Dockerfile для установки дополнительных зависимостей - PullRequest
0 голосов
/ 19 июня 2020

Я использую репозиторий https://github.com/tuanavu/airflow-tutorial git для запуска воздушного потока в контейнере docker, но вместе с ним я хочу установить дополнительные требования.

Я пытаясь установить git и несколько других зависимостей, для этого я создал Dockerfile в каталоге airflow-tutorial. и добавил в файл следующие строки.

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 file

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

Ответы [ 2 ]

0 голосов
/ 19 июня 2020

Пожалуйста, поделитесь полным файлом Dockerfile. Если это полный файл, вам необходимо добавить дополнительную информацию в Dockerfile. Прочтите этот ответ, чтобы получить полное представление.

0 голосов
/ 19 июня 2020

Если бы вы могли предоставить дополнительную информацию из текста ошибки, это было бы полезно.

dataclasses - это пакет, доступный из pypi, поэтому все, что считается, должно пройти. Резервный вариант для ошибки pip, предполагающий, что он не может найти классы данных, вероятно, что pip не может получить доступ к pypi или эквивалентному репо. он создает ваше изображение.

Опять же, если вы хотите предоставить больше текста об ошибке, кто-то может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...