mirror of
https://github.com/firewalkwithm3/Sensor-Watch.git
synced 2024-11-22 11:10:29 +08:00
Add Devcontainer as an easy dev environment option (#65)
This commit is contained in:
parent
96aaa47c8e
commit
1f6f11eb60
50
.devcontainer/Dockerfile
Normal file
50
.devcontainer/Dockerfile
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
FROM ubuntu:22.10
|
||||||
|
|
||||||
|
# TODO: install emscripten (https://emscripten.org/docs/getting_started/downloads.html)
|
||||||
|
|
||||||
|
# TODO: Clean this up once buildkit is supported gracefully in devcontainers
|
||||||
|
# https://github.com/microsoft/vscode-remote-release/issues/1409
|
||||||
|
|
||||||
|
ARG X86_64_TOOLCHAIN_FILENAME="gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2"
|
||||||
|
ARG X86_64_TOOLCHAIN="https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.07/gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2"
|
||||||
|
ARG X86_64_TOOLCHAIN_CHECKSUM="b56ae639d9183c340f065ae114a30202"
|
||||||
|
|
||||||
|
ARG AARCH64_TOOLCHAIN_FILENAME="gcc-arm-none-eabi-10.3-2021.07-aarch64-linux.tar.bz2"
|
||||||
|
ARG AARCH64_TOOLCHAIN="https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.07/gcc-arm-none-eabi-10.3-2021.07-aarch64-linux.tar.bz2"
|
||||||
|
ARG AARCH64_TOOLCHAIN_CHECKSUM="c20b0535d01f8d4418341d893c62a782"
|
||||||
|
|
||||||
|
WORKDIR /setup
|
||||||
|
|
||||||
|
# Install required packages
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get install -y --no-install-recommends \
|
||||||
|
# make is used as the build system
|
||||||
|
make \
|
||||||
|
# git is used for fetching submodules & interactive development
|
||||||
|
git \
|
||||||
|
# bzip2 is required to extract the Arm toolchain
|
||||||
|
bzip2 \
|
||||||
|
# ca certs need to be available for fetching git submodules
|
||||||
|
ca-certificates \
|
||||||
|
# python is used to convert binaries to uf2 files
|
||||||
|
python3 python-is-python3
|
||||||
|
|
||||||
|
# Download and verify both x86-64 and aarch64 toolchains. This is unfortunate and
|
||||||
|
# slows down the build, but it's a clean-ish option until buildkit can be used.
|
||||||
|
ADD $X86_64_TOOLCHAIN $X86_64_TOOLCHAIN_FILENAME
|
||||||
|
ADD $AARCH64_TOOLCHAIN $AARCH64_TOOLCHAIN_FILENAME
|
||||||
|
|
||||||
|
RUN echo "${X86_64_TOOLCHAIN_CHECKSUM} ${X86_64_TOOLCHAIN_FILENAME}" | md5sum --check
|
||||||
|
RUN echo "${AARCH64_TOOLCHAIN_CHECKSUM} ${AARCH64_TOOLCHAIN_FILENAME}" | md5sum --check
|
||||||
|
|
||||||
|
# Extract toolchain directly into /usr
|
||||||
|
RUN /bin/sh -c 'set -ex && \
|
||||||
|
ARCH=`uname -m` && \
|
||||||
|
if [ "$ARCH" = "x86_64" ]; then \
|
||||||
|
tar --strip-components=1 -C /usr -xjf $X86_64_TOOLCHAIN_FILENAME ; \
|
||||||
|
else \
|
||||||
|
tar --strip-components=1 -C /usr -xjf $AARCH64_TOOLCHAIN_FILENAME ; \
|
||||||
|
fi'
|
||||||
|
|
||||||
|
RUN rm $X86_64_TOOLCHAIN_FILENAME
|
||||||
|
RUN rm $AARCH64_TOOLCHAIN_FILENAME
|
17
.devcontainer/devcontainer.json
Normal file
17
.devcontainer/devcontainer.json
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
|
||||||
|
// https://github.com/microsoft/vscode-dev-containers/tree/v0.231.6/containers/docker-existing-dockerfile
|
||||||
|
{
|
||||||
|
"name": "GNU Arm Embedded Environment",
|
||||||
|
// Sets the run context to one level up instead of the .devcontainer folder.
|
||||||
|
"context": "..",
|
||||||
|
// Set the location of the dockerfile to use
|
||||||
|
"dockerFile": "Dockerfile",
|
||||||
|
// Set *default* container specific settings.json values on container create.
|
||||||
|
"settings": {},
|
||||||
|
// Add the IDs of extensions you want installed when the container is created.
|
||||||
|
"extensions": [
|
||||||
|
"ms-vscode.cpptools"
|
||||||
|
]
|
||||||
|
// Uncomment to connect as a non-root user if you've added one. See https://aka.ms/vscode-remote/containers/non-root.
|
||||||
|
// "remoteUser": "vscode"
|
||||||
|
}
|
Loading…
Reference in a new issue