You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by db...@apache.org on 2023/08/23 12:49:06 UTC

[impala] 02/02: [tools] Add Dev Container support for Impala development.

This is an automated email from the ASF dual-hosted git repository.

dbecker pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git

commit 4b62812995ce380f2dca038bac017432c6c5d14f
Author: Fredy Wijaya <fr...@apache.org>
AuthorDate: Fri Aug 18 14:26:38 2023 -0500

    [tools] Add Dev Container support for Impala development.
    
    Currently only VS Code is supported since IntelliJ/CLion support for
    Dev Container is still beta at the time of this writing.
    
    To use it, simply open Impala source code.
    
    $ git clone https://github.com/apache/impala.git
    $ cd impala
    $ code .
    
    The bootstrap_development.sh will be automatically executed post Docker
    container creation and all necessary extensions for IDE-like experience
    will be automatically installed. For C++, it will use clangd that uses
    compilation database instead of the Microsoft C++ extension since it
    works better with Clang related tools.
    
    Change-Id: I50508a09710641ec2a299b001fef3e7fefb0b7d5
    Reviewed-on: http://gerrit.cloudera.org:8080/20380
    Reviewed-by: Impala Public Jenkins <im...@cloudera.com>
    Tested-by: Quanlong Huang <hu...@gmail.com>
---
 .devcontainer/Dockerfile        | 10 ++++++++++
 .devcontainer/devcontainer.json | 22 ++++++++++++++++++++++
 bin/rat_exclude_files.txt       |  1 +
 3 files changed, 33 insertions(+)

diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
new file mode 100644
index 000000000..8cb17a547
--- /dev/null
+++ b/.devcontainer/Dockerfile
@@ -0,0 +1,10 @@
+FROM ubuntu:20.04
+
+ARG USER_UID=1000
+ARG USER_GID=$USER_UID
+
+RUN apt-get update \
+    && apt-get install -y sudo git \
+    && addgroup --gid "${USER_GID}" impdev \
+    && adduser --uid "${USER_UID}" --gid "${USER_GID}" --disabled-password --gecos '' impdev \
+    && echo 'impdev ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
\ No newline at end of file
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 000000000..39ce649a2
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,22 @@
+{
+  "name": "Impala Dev",
+  "dockerFile": "Dockerfile",
+  "runArgs": [
+    "--privileged"
+  ],
+  "remoteUser": "impdev",
+  "containerUser": "impdev",
+  "postCreateCommand": "echo 'yes' | bin/bootstrap_development.sh",
+  "customizations": {
+    "vscode": {
+      "extensions": [
+        "ms-vscode.cmake-tools",
+        "llvm-vs-code-extensions.vscode-clangd",
+        "vadimcn.vscode-lldb",
+        "webfreak.debug",
+        "vscjava.vscode-java-pack",
+        "ms-python.python"
+      ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/bin/rat_exclude_files.txt b/bin/rat_exclude_files.txt
index 69bc099cb..b12b8eff5 100644
--- a/bin/rat_exclude_files.txt
+++ b/bin/rat_exclude_files.txt
@@ -5,6 +5,7 @@
 # in either its literal elements or its structure is not protected by copyright law;
 # therefore, such a file does not require a license header."
 .clang-format
+.devcontainer/*
 .gitattributes
 .gitignore
 */.gitignore