aboutsummaryrefslogtreecommitdiff
path: root/main/puzzle/neo/esp-neopuzzle/.devcontainer
diff options
context:
space:
mode:
Diffstat (limited to 'main/puzzle/neo/esp-neopuzzle/.devcontainer')
-rw-r--r--main/puzzle/neo/esp-neopuzzle/.devcontainer/Dockerfile47
-rw-r--r--main/puzzle/neo/esp-neopuzzle/.devcontainer/devcontainer.json45
2 files changed, 92 insertions, 0 deletions
diff --git a/main/puzzle/neo/esp-neopuzzle/.devcontainer/Dockerfile b/main/puzzle/neo/esp-neopuzzle/.devcontainer/Dockerfile
new file mode 100644
index 0000000..1fe78dc
--- /dev/null
+++ b/main/puzzle/neo/esp-neopuzzle/.devcontainer/Dockerfile
@@ -0,0 +1,47 @@
+FROM espressif/idf
+
+ARG DEBIAN_FRONTEND=nointeractive
+ARG CONTAINER_USER=esp
+ARG USER_UID=1000
+ARG USER_GID=$USER_UID
+
+RUN apt-get update \
+ && apt install -y -q \
+ cmake \
+ git \
+ libglib2.0-0 \
+ libnuma1 \
+ libpixman-1-0 \
+ && rm -rf /var/lib/apt/lists/*
+
+# QEMU
+ENV QEMU_REL=esp_develop_8.2.0_20240122
+ENV QEMU_SHA256=e7c72ef5705ad1444d391711088c8717fc89f42e9bf6d1487f9c2a326b8cfa83
+ENV QEMU_DIST=qemu-xtensa-softmmu-${QEMU_REL}-x86_64-linux-gnu.tar.xz
+ENV QEMU_URL=https://github.com/espressif/qemu/releases/download/esp-develop-8.2.0-20240122/${QEMU_DIST}
+
+ENV LC_ALL=C.UTF-8
+ENV LANG=C.UTF-8
+
+RUN wget --no-verbose ${QEMU_URL} \
+ && echo "${QEMU_SHA256} *${QEMU_DIST}" | sha256sum --check --strict - \
+ && tar -xf $QEMU_DIST -C /opt \
+ && rm ${QEMU_DIST}
+
+ENV PATH=/opt/qemu/bin:${PATH}
+
+RUN groupadd --gid $USER_GID $CONTAINER_USER \
+ && adduser --uid $USER_UID --gid $USER_GID --disabled-password --gecos "" ${CONTAINER_USER} \
+ && usermod -a -G root $CONTAINER_USER && usermod -a -G dialout $CONTAINER_USER
+
+RUN chmod -R 775 /opt/esp/python_env/
+
+USER ${CONTAINER_USER}
+ENV USER=${CONTAINER_USER}
+WORKDIR /home/${CONTAINER_USER}
+
+RUN echo "source /opt/esp/idf/export.sh > /dev/null 2>&1" >> ~/.bashrc
+
+ENTRYPOINT [ "/opt/esp/entrypoint.sh" ]
+
+CMD ["/bin/bash", "-c"] \ No newline at end of file
diff --git a/main/puzzle/neo/esp-neopuzzle/.devcontainer/devcontainer.json b/main/puzzle/neo/esp-neopuzzle/.devcontainer/devcontainer.json
new file mode 100644
index 0000000..1d913ec
--- /dev/null
+++ b/main/puzzle/neo/esp-neopuzzle/.devcontainer/devcontainer.json
@@ -0,0 +1,45 @@
+// 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.183.0/containers/ubuntu
+{
+ "name": "ESP-IDF QEMU",
+ "build": {
+ "dockerfile": "Dockerfile"
+ },
+ // Add the IDs of extensions you want installed when the container is created
+ "workspaceMount": "source=${localWorkspaceFolder},target=${localWorkspaceFolder},type=bind",
+ /* the path of workspace folder to be opened after container is running
+ */
+ "workspaceFolder": "${localWorkspaceFolder}",
+ "mounts": [
+ "source=extensionCache,target=/root/.vscode-server/extensions,type=volume"
+ ],
+ "customizations": {
+ "vscode": {
+ "settings": {
+ "terminal.integrated.defaultProfile.linux": "bash",
+ "idf.espIdfPath": "/opt/esp/idf",
+ "idf.customExtraPaths": "",
+ "idf.pythonBinPath": "/opt/esp/python_env/idf5.3_py3.10_env/bin/python",
+ "idf.toolsPath": "/opt/esp",
+ "idf.gitPath": "/usr/bin/git"
+ },
+ "extensions": [
+ "espressif.esp-idf-extension"
+ ],
+ },
+ "codespaces": {
+ "settings": {
+ "terminal.integrated.defaultProfile.linux": "bash",
+ "idf.espIdfPath": "/opt/esp/idf",
+ "idf.customExtraPaths": "",
+ "idf.pythonBinPath": "/opt/esp/python_env/idf5.3_py3.10_env/bin/python",
+ "idf.toolsPath": "/opt/esp",
+ "idf.gitPath": "/usr/bin/git"
+ },
+ "extensions": [
+ "espressif.esp-idf-extension"
+ ],
+ }
+ },
+ "runArgs": ["--privileged"]
+} \ No newline at end of file