Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Azure Functions CLI is only available for amd64 currently
FROM mcr.microsoft.com/devcontainers/javascript-node:22-bullseye
USER root
ENV CARGO_HOME=/usr/local/cargo \
PATH=/usr/local/cargo/bin:/usr/local/share/nvm/current/bin:/usr/local/share/npm-global/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
RUSTUP_HOME=/usr/local/rustup
RUN npm install -g --no-audit --no-fund azure-functions-core-tools@4
RUN <<EOF
set -eux
ARCH=aarch64-unknown-linux-gnu
curl --proto '=https' --tlsv1.2 --silent --show-error --fail --location "https://static.rust-lang.org/rustup/dist/${ARCH}/rustup-init" --output rustup-init
chmod +x rustup-init
./rustup-init -y --no-modify-path --profile minimal --default-host "${ARCH}"
rm rustup-init
chmod -R a+w $RUSTUP_HOME $CARGO_HOME
rustup --version
rustc --version
cargo --version
EOF
ENTRYPOINT [ "/bin/sh" ]
18 changes: 11 additions & 7 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
{
"image": "mcr.microsoft.com/devcontainers/rust:1-bullseye",
"build": {
"dockerfile": "Dockerfile"
},
"runArgs": [
"--platform=linux/amd64"
],
"features": {
"ghcr.io/azure/azure-dev/azd:0": {},
"ghcr.io/devcontainers/features/azure-cli:1": {
"installBicep": true
},
"ghcr.io/devcontainers/features/dotnet:2": {},
"ghcr.io/jlaundry/devcontainer-features/azure-functions-core-tools:1": {
"version": "4"
}
},
"customizations": {
Expand All @@ -16,8 +17,11 @@
"ms-azuretools.vscode-azurefunctions",
"rust-lang.rust-analyzer",
"vadimcn.vscode-lldb"
]
],
"settings": {
"rust-analyzer.server.path": "/usr/local/cargo/bin/rust-analyzer"
}
}
},
"postCreateCommand": "rustup install"
}
}
2 changes: 1 addition & 1 deletion .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"label": "func: host start",
"command": "host start",
"dependsOn": [
"build"
"cargo: build"
],
"problemMatcher": "$func-watch",
"isBackground": true
Expand Down
5 changes: 3 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
FROM mcr.microsoft.com/devcontainers/rust:1-bullseye AS build
# Build for amd64 hosts on Azure
FROM --platform=amd64 mcr.microsoft.com/devcontainers/rust:1-bullseye AS build
WORKDIR /usr/src/functions-quickstart-rust-azd
COPY . .
RUN cargo build --release

FROM rust:1-slim-bullseye
FROM --platform=amd64 rust:1-slim-bullseye
COPY host.json /usr/local/bin/
COPY hello/function.json /usr/local/bin/hello/
COPY --from=build /usr/src/functions-quickstart-rust-azd/target/release/handler /usr/local/bin/
Expand Down