Giter Site home page Giter Site logo

azure / azure-functions-docker Goto Github PK

View Code? Open in Web Editor NEW
253.0 47.0 115.0 20.79 MB

This repo contains the base Docker images for working with azure functions

License: MIT License

Shell 10.49% Dockerfile 81.10% PowerShell 0.31% TypeScript 8.10%

azure-functions-docker's Introduction

Build Status: Build Status

CoreTools Healthcheck: CoreTools healthcheck

Dockerhub

V4 Images

See release artifacts for Dockerfiles - example : https://github.com/Azure/azure-functions-docker/releases/download/3.4.2/3.4.2-appservice.zip

Information about how we keep our images up to date can be found in the wiki

Dotnet

mcr.microsoft.com/azure-functions/dotnet

Linux amd64 Tags

Tags OS Version
4 Debian 11
4-slim Debian 11
4-appservice Debian 11
4-appservice-quickstart Debian 11

mcr.microsoft.com/azure-functions/dotnet-isolated

Tags OS Version
4-dotnet-isolated6.0 Debian 11
4-dotnet-isolated6.0-slim Debian 11
4-dotnet-isolated6.0-appservice Debian 11
4-dotnet-isolated6.0-appservice-quickstart Debian 11
4-dotnet-isolated7.0 Debian 11
4-dotnet-isolated7.0-slim Debian 11
4-dotnet-isolated7.0-appservice Debian 11
4-dotnet-isolated7.0-appservice-quickstart Debian 11
4-dotnet-isolated8.0 Debian 12
4-dotnet-isolated8.0-slim Debian 12
4-dotnet-isolated8.0-appservice Debian 12

Node

mcr.microsoft.com/azure-functions/node

Linux amd64 Tags

Tags OS Version
4-node14 Debian 11
4-node14-slim Debian 11
4-node14-appservice Debian 11
4-node14-core-tools Debian 11
4-node14-appservice-quickstart Debian 11
4-node16 Debian 11
4-node16-slim Debian 11
4-node16-appservice Debian 11
4-node16-appservice-quickstart Debian 11
4-node18 Debian 11
4-node18-slim Debian 11
4-node18-appservice Debian 11
4-node18-appservice-quickstart Debian 11
4-node20 Debian 11
4-node20-slim Debian 11
4-node20-appservice Debian 11

Powershell

mcr.microsoft.com/azure-functions/powershell

Linux amd64 Tags

Tags OS Version
4-powershell7.2 Debian 11
4-powershell7.2-slim Debian 11
4-powershell7.2-appservice Debian 11
4-powershell7.2-appservice-quickstart Debian 11
4-powershell7.4 Debian 12

Java

mcr.microsoft.com/azure-functions/java

Linux amd64 Tags

Tags OS Version
4-java8 Debian 11
4-java8-slim Debian 11
4-java8-appservice Debian 11
4-java8-build Debian 11
4-java11 Debian 11
4-java11-slim Debian 11
4-java11-appservice Debian 11
4-java11-build Debian 11
4-java17 Debian 11
4-java17-slim Debian 11
4-java17-appservice Debian 11
4-java17-build Debian 11
4-java17-appservice-quickstart Debian 11
4-java21 Debian 12
4-java21-slim Debian 12
4-java21-appservice Debian 12
4-java21-build Debian 12
4-java21-appservice-quickstart Debian 12

Python

mcr.microsoft.com/azure-functions/python

Linux amd64 Tags

Tags OS Version
4-python3.7 Debian 11
4-python3.7-slim Debian 11
4-python3.7-appservice Debian 11
4-python3.7-buildenv Debian 11
4-python3.7-appservice-quickstart Debian 11
4-python3.8 Debian 11
4-python3.8-slim Debian 11
4-python3.8-appservice Debian 11
4-python3.8-appservice-quickstart Debian 11
4-python3.8-buildenv Debian 11
4-python3.9 Debian 11
4-python3.9-slim Debian 11
4-python3.9-appservice Debian 11
4-python3.9-appservice-quickstart Debian 11
4-python3.9-buildenv Debian 11
4-python3.10 Debian 11
4-python3.10-slim Debian 11
4-python3.10-appservice Debian 11
4-python3.10-buildenv Debian 11
4-python3.10-appservice-quickstart Debian 11
4-python3.11 Debian 11
4-python3.11-slim Debian 11
4-python3.11-appservice Debian 11
4-python3.11-buildenv Debian 11
4-python3.11-appservice-quickstart Debian 11

Base

mcr.microsoft.com/azure-functions/base

Linux amd64 Tags

Tags OS Version
4 Debian 11
4-slim Debian 11
4-appservice Debian 11

MCR Docs

For new images update the following:

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

azure-functions-docker's People

Contributors

actions-user avatar ahmelsayed avatar alrod avatar amamounelsayed avatar anatolib avatar ankitkumarr avatar balag0 avatar brettsam avatar cooperlink avatar dependabot[bot] avatar divyagandhisethi avatar francisco-gamino avatar gavin-aguiar avatar github-actions[bot] avatar hazhzeng avatar jatinsanghvi avatar kaibocai avatar kshyju avatar maiqbal11 avatar pdthummar avatar pragnagopa avatar soninaren avatar tonewall avatar tsuyoshiushio avatar tylerleonhardt avatar v-imohammad avatar v-smanchem avatar v-vishalr avatar vpofengineering avatar vrdmr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

azure-functions-docker's Issues

Enable remote debugging for Python Functions

Only applicable to Function Apps on dedicated/app service plan and premium plan.

Requirements:

  • Container should start in debug mode using $APPSVC_TUNNEL_PORT which is set by app service
  • Include pip install --pre ptvsd as part of the dockerfile

More details TBD.

python.Dockerfile is using an old version of the worker

It seems python.Dockerfile is pulling in an old version (1.0.0a4) of the worker's source code, is that intentional? If not, please update to use the latest release 1.0.0a6

ARG WORKER_TAG=1.0.0a4
FROM ${BASE_IMAGE}:${BASE_IMAGE_TAG}
ARG WORKER_TAG
RUN apt-get update && \
apt-get install -y git wget
RUN wget https://github.com/Azure/azure-functions-python-worker/archive/${WORKER_TAG}.tar.gz && \
tar xvzf ${WORKER_TAG}.tar.gz && \
mv azure-functions-python-worker-* azure-functions-python-worker

Portal doesn't display the runtime version

From @davidebbo on April 17, 2018 1:43

It just shows the ~ version but not the actual host version:

image

The fact that it incorrectly says to upgrade is tracked separately by #2564.

Copied from original issue: Azure/azure-functions-ux#2567

No Console Logging

In the latest build all console logging of errors is gone, and my queueTrigger do not start .
Using microsoft/azure-functions-node8:2.0

Azure SDKs native in Functions

Specific customer feedback indicates the experience in Functions can be improved by making Azure SDKs native in Functions (currently requires packaging SDK and uploading). This would create an experience for Functions more aligned to a principle of โ€œinter-connected tissueโ€ to facilitate serverless to hook among the services within Azure.

Docker image size comparison

From @priyaananthasankar on December 14, 2018 8:19

I wrote a forecasting app and launched it in ACI using Python Functions on Container, through func core tools, this uses Blob binding and is triggered through HTTP

func --init Docker and compiled the docker image. The code for this is here:

https://github.com/priyaananthasankar/parseltongue/tree/master/PyFunctionsOnACI/ForecastingApp

I also wrote the exact same forecasting app in my own custom container which uses Azure Blob Storage for Python + Flask for HTTP Trigger (basically does not use the functions programming model)

I see the image using functions programming model is almost 400MB more than the custom image. This is a case for running functions on AKS or ACI etc, the larger the container the more time it takes to spin it up. There must be a better case for containerized app that uses the Python functions programming model.

Check out the comparison here: https://github.com/priyaananthasankar/parseltongue/tree/master/Comparisons

Copied from original issue: Azure/azure-functions-python-worker#265

Support Python 3.7

We need a docker image to support Functions written using Python 3.7.

Functions v1 image

I've seen references to Functions v1 being run inside a container,

In this version we added support for:
Functions v1 (.NET Framework) running in Windows Server Core container
Azure/Azure-Functions#288 (comment)

is there any chance that Dockerfile can be added to that repo and/or that image could be published so we can use it as part of our test environment for our v1 Functions till v2 is out of preview?

Remove dependency on worker.py

Currently, there is a dependency on worker.py being present in the Python worker. However, this would not necessarily be the case in the future e.g. running the language worker module directly. Running the worker process should rely on configuration rather than the presence of a particular file.

Using with Docker Compose

Here's my docker-compose.yml;

version: '3'

services:
  func:
    environment:
      AzureWebJobsScriptRoot: /www/src
      AzureFunctionsJobHost__Logging__Console__IsEnabled: 'true'
    image: mcr.microsoft.com/azure-functions/node
    ports:
      - 7071:80
    restart: always
    volumes:
      - .:/www
    working_dir: /www

  mongo:
    image: mongo:3.4
    restart: always

Four questions;

  1. Is the behavior around AzureFunctionsJobHost__Logging__Console__IsEnabled sorted yet? Is there a cleaner flag I can set to enable verbose'ish logging?
  2. When I docker-compose up, my app cannot access the environment variables in local.settings.json. How can I get it to load variables from there?
  3. This app always boots in production mode; Hosting environment: Production. How can I get to run in development mode so NODE_ENV is set to development and there's more logging, etc? Couldn't find any documentation on this. Hopefully, this will also enable the use of console.log as right now only context.log is available.
  4. How can I get it to work with authLevel set to function, which is how I want my code to be deployed to Azure? Will setting the environment to development fix that? Or will I have to commit to source control with anonymous and as part of my build process, change to function?

cc @mhoeger @paulbatum

Post pip install azure-common, worker module imports are failing

Base image: microsoft/azure-functions-pyon3.6:v2.0.11737-alpha

Repro:

After pip installing the azure-common module, I get the following error when trying to import azure.functions. ModuleNotFoundError: No module named 'azure.functions'

$ docker run -it microsoft/azure-functions-pyon3.6:v2.0.11737-alpha bash
root@17dd101117b3:/# pip install azure-common
Collecting azure-common
  Downloading https://files.pythonhosted.org/packages/97/3b/2c7cda25382c3bb566008c5c8f8aa28663fd15a80a6204c76ae0035de107/azure_common-1.1.11-py2.py3-none-any.whl
Collecting azure-nspkg>=2.0.0 (from azure-common)
  Downloading https://files.pythonhosted.org/packages/cd/a0/76ca6659ae9afd7567fdbb5b9c85e9c9a0b48238cfcacd92525484408f66/azure_nspkg-2.0.0-py2.py3-none-any.whl
Installing collected packages: azure-nspkg, azure-common
Successfully installed azure-common-1.1.11 azure-nspkg-2.0.0
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
root@17dd101117b3:/# python
Python 3.6.4 (default, May  1 2018, 23:33:54)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import azure.functions
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'azure.functions'
>>> 

Workaround to get azure.functions import to work

Add the following lines to the docker file. This seems to change how the azure.functions module is installed. Consequently, I can import the azure.functions again.

pip uninstall azure-functions-python
pip install git+https://github.com/Azure/[email protected]#egg=azure-functions-python

Other errors

However, additional errors are logged by worker in the console.

Docker file

FROM microsoft/azure-functions-python3.6:v2.0.11737-alpha

ENV host:logger:consoleLoggingMode=always

COPY . /home/site/wwwroot

RUN pip uninstall azure-functions-python -y

RUN pip install git+https://github.com/Azure/[email protected]#egg=azure-functions-python

RUN pip install azure-common
info: Worker.python.e27f3d6b-6ca2-4939-9cf9-df86628d4007[0]
      ImportError: cannot import name 'bindings'
fail: Worker.python.e27f3d6b-6ca2-4939-9cf9-df86628d4007[0]
      Worker encountered an error.

...

fail: Function.TimerTrigger[0]
      => System.Collections.Generic.Dictionary`2[System.String,System.Object]
      System.Private.CoreLib: Exception while executing function: Functions.TimerTrigger. System.Private.CoreLib: One or more errors occurred. (Worker process with pid 39 exited with code 1) (Worker process with pid 89 exited with code 1) (Worker process with pid 135 exited with code 1). Worker process with pid 39 exited with code 1.
fail: Function.TimerTrigger[0]
      => System.Collections.Generic.Dictionary`2[System.String,System.Object]
      Executed 'Functions.TimerTrigger' (Failed, Id=f20f345a-56da-4415-9e14-71e0ca6fb5c1)
Microsoft.Azure.WebJobs.Host.FunctionInvocationException: Exception while executing function: Functions.TimerTrigger ---> System.AggregateException: One or more errors occurred. (Worker process with pid 39 exited with code 1) (Worker process with pid 89 exited with code 1) (Worker process with pid 135 exited with code 1) ---> System.Exception: Worker process with pid 39 exited with code 1
   --- End of inner exception stack trace ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.Azure.WebJobs.Script.Description.WorkerLanguageInvoker.<InvokeCore>d__6.MoveNext() in /azure-functions-host-2.0.11737-alpha/src/WebJobs.Script/Description/Rpc/WorkerLanguageInvoker.cs:line 73
--- End of stack trace from previous location where exception was thrown ---

Create ssh enabled images for use in AppService

The changes needed for .Net are
c6beee8

(For node we might need to launch the node process in debug mode additionally)

We will need to have separate ssh enabled images ( dotnet , node , python to begin with) to avoid security issue with having public username/password in the dockerfile. When used in appservice this is ok since the port is only exposed through kudu which requires auth.

The images will be named with -xdebug as part of their name (Ex: appsvc/php:5.6.38-apache-xdebug_1810291954). When remote debugging is enabled on a site , LWAS will pick the -xdebug image instead of regular image.

Matching launch.json config to use with vs code

{
"name": ".NET Core SSH Attach",
"type": "coreclr",
"request": "attach",
"processId": "${command:pickRemoteProcess}",
"pipeTransport": {
"pipeProgram": "ssh",
"pipeArgs": [ "-T", "[email protected]", "-p", "PORT_NUMBER", "-i", "PATH_TO_SSHPRIVATEKEY" ],
"debuggerPath": "/root/vsdbg/vsdbg",
"pipeCwd": "${workspaceRoot}",
"quoteArgs": true
}
}
debugger path is preset based on dockerfile debugger installation location.
PORT_NUMBER is from
az webapp remote-connection create -g RESOURCE_GROUP -n APP_NAME -p PORT_NUMBER

Deployment Steps/Script for Linux/Seabreeze

As we move closer to Python GA in June, there is a critical need to test Python scenarios directly on the Seabreeze Linux platform using our Docker container images. There are crucial development cases that require the use of Seabreeze specific testing:

  1. Logging to Kusto/MDS/AI
  2. Cold start perf testing/ profiling
  3. Integration testing

The ask here is to have a set of steps for the following workflow: (1) Host + Worker Code --> (2) Deploy to Seabreeze in Docker Container --> (3) Check Logs/ Peform perf testing/ Use container for integration testing

Ideally, (1) and (2) above could be automated as part of a script so that we are able to point to a worker and host repo and then deploy the full package for testing in Seabreeze.

Please feel free to share existing scripts that we can use for this. Thanks!

Azure portal cannot list my functions anymore

Hello,

Azure portal is not listing my functions anymore. May it comes from recent changes ?

When azure portal tries to list my functions in the interface, it tries to access /admin/functions and here is the result :

OPTIONS https://xxxxxxx.azurewebsites.net/admin/functions 404 ()
Failed to load https://xxxxxxx.azurewebsites.net/admin/functions: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://functions.azure.com' is therefore not allowed access.
POST https://functions.azure.com/api/passthrough 500 (Internal Server Error)

I am not sure if it may comes from the docker image.
I am using 2.0 tag. Does the image behind this tag change overtime ? If yes it would be great to have immutable docker image tag.

Docker image is from microsoft/azure-functions-base:2.0

Functions With Storage Queue Triggers

I have used this base image to run a function which uses a storage queue trigger.
This works when I run the container on my machine:
docker run --name function functionimagename
as in I can see then when putting messages on the relevant queue, they are consumed.

However, if I deploy to Azure (as a Functions app with "OS"=="Docker"), I can see that a container is run using my image, but items on the queue are not consumed.

Seeing as the issue here is that the function is not being triggered, I am struggling to diagnose why it is not being triggered.

I have made a sample project reproducing this behaviour
https://github.com/thyde1/docker-azure-functions-test

Any ideas why this isn't working in Azure would be greatly appreciated.

Support .NET Core 2.2 SDK as Base Image

Is there a timeline posted for migrating to 2.2-sdk as the base image(s)?

We would love to upgrade to .NET Core 2.2 across our platform, but we need parity across all of our images for library/package compatibility, etc.

Also, how does the azure-functions-dotnet-core2.0 naming convention fit in with the .NET Core SDK naming convention? Is 2.0 here referencing Azure Functions 2.0 or .NET Core SDK? It's somewhat confusing based on the fact that the host is based on the 2.1 SDK image currently ๐Ÿ˜œ

Microsoft ODBC Driver 17 for SQL Server - Python

I'd like to be able to connect from a Python Azure Function in the 2.0 runtime (consumption plan) to an Azure SQL Server 17 database.

Currently receiving the error: OdbcNoLibrary: ODBC Library is not found. which should be resolved by #32, but I believe the correct driver would also need to be installed for unixodbc to actually make the connection. I found instructions for that here: https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-2017 .

Could we have this driver installed to the base image for Python Azure Functions, to enable out-of-the-box SQL Server 17 connectivity?

Install Azure SDK into base python image

It would be nice to add pip install azure to https://github.com/Azure/azure-functions-docker/blob/master/host/2.0/stretch/amd64/python3.6/Dockerfile

Of course it further aggravates #2 (although not sure if important)

This is comparable to what AWS does in Lambda, where 100% of the AWS SDK is available.

It also reduces lots of pain on the developer. Packaging a function is usually not too big of a deal, but the Azure SDK is a very complex package (dependency tree) with lots of natively compiled binaries in it, it is nearly impossible to package without the complex docker based process used in the Functions CLI - and even then you end up with a very large zip and a slow packaging process.

I'm happy to make a PR and test the image/size if there is interest.

HttpTrigger Local Function Returns 406 in the Browser

From @aluong on May 8, 2018 22:13

I cloned and the example which targets base image: microsoft/azure-functions-python3.6:v2.0.11737-alpha

When I go to

http://localhost:8080/api/HttpTrigger?name=hi

I see an Http Error 406. In the docker logs I see that the HttpTrigger was hit.

info: Function.HttpTrigger[0]
      => System.Collections.Generic.Dictionary`2[System.String,System.Object] => System.Collections.Generic.Dictionary`2[System.String,System.Object]
      Executing 'Functions.HttpTrigger' (Reason='This function was programmatically called via the host APIs.', Id=f7d69d25-233a-41da-a569-95a2bdaa9ca1)

Copied from original issue: Azure/azure-functions-docker-python-sample#15

Add python alpine image to public container registry

This is probably related to #2. I have seen that we have a alpine Dockerfile for python, but this image is not being built and pushed to the registry.

Can this be added to the build pipeline, please? I have already been using since functions v2.0.12285 without any problem.

func azure functionapp publish --build-native-deps fails with docker error

Hi All!
I am tryting to publish a python function but I got an error message.
I used this command:
func azure functionapp publish sanyifunction --build-native-deps

Environment is Centos7 and Python 3.6.7

This is the error message:

Getting site publishing info...
Running 'docker pull mcr.microsoft.com/azure-functions/python:2.0.12285'..done
Running 'docker run --rm -d mcr.microsoft.com/azure-functions/python:2.0.12285'..done
Running 'docker exec -t 088384 mkdir -p /home/site/wwwroot/'..done
Running 'docker cp /tmp/15pjtmni.l2t/. 088384:/home/site/wwwroot'..done
Running 'docker kill 088384'..done

Error running docker cp /tmp/15pjtmni.l2t/. 08838429b9ba5e734c977c03f3008ff86b6616f7f66c68063d3bafd3fc63a6dc:/home/site/wwwroot.
output:
Error: No such container:path: 08838429b9ba5e734c977c03f3008ff86b6616f7f66c68063d3bafd3fc63a6dc:/home/site

This is the requirements.txt

cat requirements.txt
azure-functions==1.0.0b3
azure-functions-worker==1.0.0b3
grpcio==1.14.2
grpcio-tools==1.14.2
protobuf==3.6.1
six==1.12.0
azure
azure-mgmt-resource
azure-datalake-store
azure-mgmt-datalake-store
azure-mgmt-datalake-analytics

The code is running locally. Also I have to use the --build-native-deps otherwise I get this error message:

There was an error restoring dependencies.ERROR: cannot install cryptography-2.5 dependency: binary dependencies without wheels are not supported. Use the --build-native-deps option to automatically build and configure the dependencies using a Docker container. More information at https://aka.ms/func-python-publish

Can it be a bug? Or maybe I am doing something wrong?

Help me Understand the Functions Runtime and Pooling.

I did a pull of the azure functions base. the image size is a whopping 3.92 gb.
mcr.microsoft.com/azure-functions/base latest c1f034e6ab2e 1 hours ago 3.92GB

I thought this might be the runtime, which means this is the image that actually manages the pooling of Functions, and orchestrates, shutting down, serving etc.

However it appears this image serves as the base for all individual functions.

Can someone please help me understand more on this topic? Is it true that every function that gets spun up to serve requests is actually at least 3.92 gb!!!?!?!

If I am incorrect on this could I get some detail as function lifetime flow and how the azure runtime will orchestrate these functions?

We are looking into azure functions, and if this runtime is open source, and supported we could always port it to work on kubernetes if there were ever a need to switch cloud vendors. The way I currently understand functions and how they work, and then reviewing these images, is a step back in the direction for azure functions.

Support Anaconda in-built image

  • Installs some of the best and most used libraries by default
  • Easy to install modules with conda compared to pip(+wheels)
  • Most of engineers running python on functions v2 might use it for data processing with pandas or other libraries. they might not be interested in going through extra steps for installing them..

Minor update to Python image

As per official Python docker image, could we add some important environment variables:

ENV LANG C.UTF-8
ENV PYTHON_VERSION 3.6.6
ENV PYTHON_PIP_VERSION 18.0

Also, while at it, why don't we update to version 3.6.6. I have been doing some tests and, so far, not a single problem.

documentation

Please provide more information and/or documentation for reference deployments and how to use the docker images for no premises deployments/development

Python requirement absl-py installation fails (binary dependencies without wheels are not supported)

When trying to deploy a function app that requires TensorFlow (e.g., tensorflow==1.11.0 in requirements.txt), the following error occurs:

$ az functionapp createpreviewapp -n Fun2xApp -g XXXXXXX -l "WestUS" -s  XXXXXXX --runtime  python --is-linux
$ func azure functionapp publish Fun2xApp  --force
Getting site publishing info...
pip download -r /Users/patryk.laurent/Desktop/TEST/azure_functions2x/MyFunctionProj/requirements.txt --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworker13qtj_47
pip download --no-deps --only-binary :all: --platform manylinux1_x86_64 --python-version 36 --implementation cp --abi cp36m --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerf2kx2ew_ astor==0.7.1
pip download --no-deps --only-binary :all: --platform manylinux1_x86_64 --python-version 36 --implementation cp --abi cp36m --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerf2kx2ew_ azure_functions_worker==1.0.0a4
pip download --no-deps --only-binary :all: --platform manylinux1_x86_64 --python-version 36 --implementation cp --abi cp36m --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerf2kx2ew_ setuptools==40.5.0
pip download --no-deps --only-binary :all: --platform manylinux1_x86_64 --python-version 36 --implementation cp --abi cp36m --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerf2kx2ew_ azure_functions==1.0.0a4
pip download --no-deps --only-binary :all: --platform manylinux1_x86_64 --python-version 36 --implementation cp --abi cp36m --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerf2kx2ew_ Werkzeug==0.14.1
pip download --no-deps --only-binary :all: --platform manylinux1_x86_64 --python-version 36 --implementation cp --abi cp36m --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerf2kx2ew_ Markdown==3.0.1
pip download --no-deps --only-binary :all: --platform manylinux1_x86_64 --python-version 36 --implementation cp --abi cp36m --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerf2kx2ew_ protobuf==3.6.1
pip download --no-deps --only-binary :all: --platform manylinux1_x86_64 --python-version 36 --implementation cp --abi cp36m --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerf2kx2ew_ grpcio_tools==1.14.2
pip download --no-deps --only-binary :all: --platform manylinux1_x86_64 --python-version 36 --implementation cp --abi cp36m --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerf2kx2ew_ tensorboard==1.10.0
pip download --no-deps --only-binary :all: --platform manylinux1_x86_64 --python-version 36 --implementation cp --abi cp36m --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerf2kx2ew_ tensorflow==1.10.0
pip download --no-deps --only-binary :all: --platform manylinux1_x86_64 --python-version 36 --implementation cp --abi cp36m --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerf2kx2ew_ termcolor==1.1.0
pip wheel --no-deps --no-binary :all: --wheel-dir /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworker8feia_e1 termcolor==1.1.0
pip download --no-deps --only-binary :all: --platform manylinux1_x86_64 --python-version 36 --implementation cp --abi cp36m --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerf2kx2ew_ numpy==1.14.5
pip download --no-deps --only-binary :all: --platform manylinux1_x86_64 --python-version 36 --implementation cp --abi cp36m --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerf2kx2ew_ grpcio==1.14.2
pip download --no-deps --only-binary :all: --platform manylinux1_x86_64 --python-version 36 --implementation cp --abi cp36m --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerf2kx2ew_ six==1.11.0
pip download --no-deps --only-binary :all: --platform manylinux1_x86_64 --python-version 36 --implementation cp --abi cp36m --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerf2kx2ew_ wheel==0.32.2
pip download --no-deps --only-binary :all: --platform manylinux1_x86_64 --python-version 36 --implementation cp --abi cp36m --dest /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerf2kx2ew_ absl-py==0.6.1
pip wheel --no-deps --no-binary :all: --wheel-dir /var/folders/ny/48h0ry5j5bdcvv99jqxs2b24qrj203/T/azureworkerzkuf3tru absl-py==0.6.1

There was an error restoring dependencies.ERROR: cannot install absl-py-0.6.1 dependency: binary dependencies without wheels are not supported.  Use the --build-native-deps option to try building the binary dependencies using a Docker container.

Is there a workaround?

Thank you.

Functions 2.x - How to register bindings?

For functions 2.x, it is requirement to explicitly register any extensions aside from HTTP and Timer. I've found that when running a simple ServiceBusTrigger'd function app within a Docker container, the host fails to load the functions runtime because the required extension isn't installed. It seems to not be enough to have the particular extension NuGet referenced in the function source; it has to be installed into the runtime.

I'm thinking I should install the functions core tools in the image and then run "func install extensions" at the entrypoint. Am I missing a more obvious solution?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.