Создал ACR из функции Azure на компьютере с Windows, пытаясь развернуть (успешно) и запустить (не удалось) на Raspberry Pi 3 B + - PullRequest
0 голосов
/ 02 октября 2019

Я создал функцию Python Azure в качестве Docker для создания образа Docker на компьютере с Windows. Затем я внедряю это в Azure IoT Edge. У меня есть его развертывание на моем Raspberry Pi 3 B + (работает Raspbian или Debian). Это очень успешно. Однако, когда я запускаю свой образ докера, я получаю с --debug:

standard_init_linux.go: 211: пользовательский процесс exec вызвал «ошибку формата exec» DEBU [0001] [hijack] Конец stdout

ЗДЕСЬ ШАГИ, К КОТОРЫМ Я ДОБРАЛСЯ, ЧТОБЫ ГДЕ НАХОДИТЬСЯ: azureiotedgeraspberrypi3.wordpress.com

Не аккуратные шаги репо, но пока они мои шаги репо. Задавайте вопросы, и я отвечу, чтобы ответить на любые вопросы или предложения.

Поскольку это была небольшая функция, я вручную изменил все окончания строк на Unix с помощью Notepad ++. Воссозданная функция Azure и образ Docker, развертываемые в ACR, а затем IoT Edge.

Примечание. Функция Azure работает на компьютере Windows и работает через Azure.

Функция Azure:

import logging

import azure.functions as func
import os


def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

    name = req.params.get('name')
    os.system("echo \'dawg\' >> ~/delete_azure_function_proof.txt")
    if not name:
        try:
            req_body = req.get_json()
        except ValueError:
            pass
        else:
            name = req_body.get('name')

    if name:
        return func.HttpResponse(f"Hello {name}!")
    else:
        return func.HttpResponse(
             f"Please pass a name on the query string or in the request body",
             status_code=400
        )

Ожидается: развертывается на Raspberry Pi 3 (RP3) и запускается, изменяя содержимое файла, перечисленное в коде: os.system ("echo \ 'dawg \' >> ~ / delete_azure_function_proof.txt") на RP3.

Actual: Развертывание отлично до RP3. За исключением ошибки get при попытке запуска образа Docker: standard_init_linux.go: 211: пользовательский процесс exec вызвал «ошибку формата exec» DEBU [0001] [hijack] Конец stdout

1 Ответ

0 голосов
/ 02 октября 2019

Кажется, что Dockerfile может быть настроен неправильно.

FROM mcr.microsoft.com/azure-functions/python:2.0

ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true

COPY . /home/site/wwwroot

RUN cd /home/site/wwwroot && \
    pip install -r requirements.txt

Новый Dockerfile:

FROM mcr.microsoft.com/azure-functions/python:2.0-arm32v7

ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true

COPY . /home/site/wwwroot

RUN cd /home/site/wwwroot && \
    pip install -r requirements.txt

СЕЙЧАС РАБОТАЕТ!

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