Файл не найден даже после добавления файла в Docker - PullRequest
0 голосов
/ 01 января 2019

Я написал файл Docker, который добавляет мой скрипт Python внутри контейнера: ADD test_pclean.py /test_pclean.py

Моя структура каталогов:

.
├── Dockerfile
├── README.md
├── pipeline.json
└── test_pclean.py

Мой файл JSON, который действует как файл конфигурациидля создания конвейера в Pachyderm выглядит следующим образом:

{
    "pipeline": {
        "name": "mopng-beneficiary-v2"
    },
    "transform": {
        "cmd": ["python3", "/test_pclean.py"],
        "image": "avisrivastava254084/mopng-beneficiary-v2-image-7"
    },
    "input": {
        "atom": {
            "repo": "mopng_beneficiary_v2",
            "glob": "/*"
        }
    }
}

Несмотря на то, что я скопировал пример официальной документации, я сталкиваюсь с ошибкой: python3: can't open file '/test_pclean.py': [Errno 2] No such file or directory

Мой dockerfile:

FROM    debian:stretch

# Install opencv and matplotlib.
RUN apt-get update \
    && apt-get upgrade -y \
    && apt-get install -y unzip wget build-essential \
        cmake git pkg-config libswscale-dev \
    && apt-get clean \
    && rm -rf /var/lib/apt

RUN apt update
RUN apt-get -y install python3-pip
RUN pip3 install matplotlib
RUN pip3 install pandas

ADD test_pclean.py /test_pclean.py
ENTRYPOINT [ "/bin/bash/" ]

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Я не менял коммиты на свои образы докеров в каждой сборке, и, следовательно, Kubernetes использовал свой локальный файл докера (без тегов и коммитов, он не подтверждает никаких изменений).Как только я начал использовать commit для каждой сборки, Kubernetes начал загружать нужный образ докера.

0 голосов
/ 03 января 2019

Как некоторые из приведенных выше комментариев предлагают.Похоже, ваш файл test_pclean.py отсутствует в образе докера.Вот что должно это исправить.

  1. Убедитесь, что файл test_pclean.py находится в образе докера, поскольку он включен в процесс сборки.Поместите это как последний шаг в вашем файле Docker:

COPY test_pclean.py .

Убедитесь, что ваша спецификация конвейера pachyderm содержит следующее для cmd: "cmd": ["python3", "./test_pclean.py"]

И это скорее предложение, чем требование ...Вы упростите себе жизнь, если будете использовать теги изображений как часть сборки Docker.Если вы по умолчанию используете тег latest, любые будущие итерации / сборки этого шага в вашем конвейере могут иметь негативные последствия (новые ошибки в вашем коде и т. Д.).Поэтому лучше всего использовать конкретную версию в своем конвейере: mopng-beneficiary-v2-image-7:v1 и mopng-beneficiary-v2-image-7:v2 и так далее.Таким образом, вы можете повторить, скажем, версию 3, и это не повлияет на уже работающий конвейер.

docker build -t avisrivastava254084/mopng-beneficiary-v2-image-7:v1

Затем просто обновите свою спецификацию конвейера для использования avisrivastava254084/mopng-beneficiary-v2-image-7:v1

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