This repository has been archived by the owner on Nov 30, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
7bdf9b4
commit 3ff727e
Showing
4 changed files
with
133 additions
and
0 deletions.
There are no files selected for viewing
48 changes: 48 additions & 0 deletions
48
containers/azure-functions-python-3.6/.devcontainer/Dockerfile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
#------------------------------------------------------------------------------------------------------------- | ||
# Copyright (c) Microsoft Corporation. All rights reserved. | ||
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information. | ||
#------------------------------------------------------------------------------------------------------------- | ||
|
||
FROM python:3.6-stretch | ||
|
||
# Avoid warnings by switching to noninteractive | ||
ENV DEBIAN_FRONTEND=noninteractive | ||
|
||
# Configure apt and install packages | ||
RUN apt-get update \ | ||
&& apt-get -y install --no-install-recommends apt-utils 2>&1 \ | ||
# | ||
# Verify git and needed tools are installed | ||
&& apt-get -y install \ | ||
git \ | ||
procps \ | ||
curl \ | ||
apt-transport-https \ | ||
gnupg2 \ | ||
lsb-release \ | ||
# | ||
# Install Azure Functions, .NET Core, and Azure CLI | ||
&& echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/azure-cli.list \ | ||
&& echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-$(lsb_release -cs)-prod $(lsb_release -cs) main" > /etc/apt/sources.list.d/dotnetdev.list \ | ||
&& curl -sL https://packages.microsoft.com/keys/microsoft.asc | (OUT=$(apt-key add - 2>&1) || echo $OUT) \ | ||
&& apt-get update \ | ||
&& apt-get install -y azure-cli dotnet-sdk-2.1 azure-functions-core-tools \ | ||
# | ||
# Install Docker CE CLI (needed for publish with --build-native-deps) | ||
&& apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common lsb-release \ | ||
&& curl -fsSL https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/gpg | apt-key add - 2>/dev/null \ | ||
&& add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') $(lsb_release -cs) stable" \ | ||
&& apt-get update \ | ||
&& apt-get install -y docker-ce-cli \ | ||
# | ||
# Install Docker Compose | ||
&& curl -sSL "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose \ | ||
&& chmod +x /usr/local/bin/docker-compose \ | ||
# | ||
# Clean up | ||
&& apt-get autoremove -y \ | ||
&& apt-get clean -y \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
# Switch back to dialog for any ad-hoc use of apt-get | ||
ENV DEBIAN_FRONTEND=dialog |
22 changes: 22 additions & 0 deletions
22
containers/azure-functions-python-3.6/.devcontainer/devcontainer.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
// See https://aka.ms/vscode-remote/devcontainer.json for format details. | ||
{ | ||
"name": "Azure Functions & Python 3.6", | ||
"dockerFile": "Dockerfile", | ||
"appPort": [ 7071 ], | ||
"runArgs": ["-v","/var/run/docker.sock:/var/run/docker.sock"], | ||
|
||
// Uncomment the next line if you want to add in default container specific settings.json values | ||
"settings": { | ||
"remote.extensionKind": { | ||
"ms-azuretools.vscode-docker": "workspace" | ||
} | ||
}, | ||
|
||
// Uncomment the next line to run commands after the container is created. | ||
// "postCreateCommand": "npm install", | ||
|
||
"extensions": [ | ||
"ms-azuretools.vscode-azurefunctions", | ||
"ms-python.python" | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
README.md | ||
test-project | ||
.vscode | ||
.npmignore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
# Azure Functions & Python 3.6 | ||
|
||
## Summary | ||
|
||
*Develop Azure Functions in Python. Includes Python 3.6, the Azure Functions SDK, Docker CLI (required to publish to Azure with native dependencies) and related extensions and dependencies.* | ||
|
||
| Metadata | Value | | ||
|----------|-------| | ||
| *Contributors* | [Anthony Chu](https://github.com/anthonychu) | | ||
| *Definition type* | Dockerfile | | ||
| *Languages, platforms* | Azure Functions, Python | | ||
|
||
## Using this definition with an existing folder | ||
|
||
This definition requires an Azure subscription to use. You can create a [free account here](https://azure.microsoft.com/en-us/free/serverless/) and learn more about using [Azure Functions with VS Code here](https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-function-vs-code). Once you have an Azure account, follow these steps: | ||
|
||
1. If this is your first time using a development container, please follow the [getting started steps](https://aka.ms/vscode-remote/containers/getting-started) to set up your machine. | ||
|
||
2. To use VS Code's copy of this definition: | ||
1. Start VS Code and open your project folder. | ||
2. Press <kbd>F1</kbd> select and **Remote-Containers: Add Development Container Configuration Files...** from the command palette. | ||
3. Select the Azure Functions & Python 3.6 definition. | ||
|
||
3. To use latest-and-greatest copy of this definition from the repository: | ||
1. Clone this repository. | ||
2. Copy the contents of `containers/azure-functions-python-3.6/.devcontainer` to the root of your project folder. | ||
3. Start VS Code and open your project folder. | ||
|
||
4. After following step 2 or 3, the contents of the `.devcontainer` folder in your project can be adapted to meet your needs. | ||
|
||
5. Finally, press <kbd>F1</kbd> and run **Remote-Containers: Reopen Folder in Container** to start using the definition. | ||
|
||
## Testing the definition | ||
|
||
This definition includes some test code that will help you verify it is working as expected on your system. Follow these steps: | ||
|
||
1. If this is your first time using a development container, please follow the [getting started steps](https://aka.ms/vscode-remote/containers/getting-started) to set up your machine. | ||
2. Clone this repository. | ||
3. Start VS Code, press <kbd>F1</kbd>, and select **Remote-Containers: Open Folder in Container...** | ||
4. Select the `containers/azure-functions-python-3.6` folder. | ||
5. After the folder has opened in the container, press <kbd>F1</kbd> and select **Azure Functions: Create Function...**. | ||
6. Enter these options: | ||
1. Yes (when prompted to create a new project) | ||
2. Python | ||
3. HTTP Trigger | ||
4. HTTPTrigger | ||
5. Anonymous | ||
6. Open in current window | ||
7. Press <kbd>F5</kbd> to start debugging project. | ||
8. After the debugger is started, open a local browser and enter the URL: `http://localhost:7071/api/HttpTrigger?name=remote`. | ||
- If the port 7071 is not already open, press <kbd>F1</kbd>, select **Remote-Containers: Forward Port from Container...**, and then port 7071. | ||
9. You should see "Hello remote" echoed by the Azure Function. | ||
10. From here, you can add breakpoints or edit the contents of the `test-project` folder to do further testing. | ||
|
||
## License | ||
|
||
Copyright (c) Microsoft Corporation. All rights reserved. | ||
|
||
Licensed under the MIT License. See [LICENSE](https://github.com/Microsoft/vscode-dev-containers/blob/master/LICENSE). |