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