blob: f5a6c74241cddb23e3c1f378fa8df55562a8eed1 [file]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
// Adapted from Apache Iceberg C++
// https://github.com/apache/iceberg-cpp/blob/v0.2.0/.devcontainer/devcontainer.json.template
// Default Paimon C++ Dev Container.
// On Apple Silicon hosts this runs as native aarch64 Linux (fast).
// For x86_64 verification, use the variant under .devcontainer/x86_64/.
{
"name": "Paimon CPP Dev Container",
"build": {
"dockerfile": "Dockerfile"
},
"runArgs": [
"--ulimit=core=-1",
"--cap-add=SYS_ADMIN",
"--cap-add=SYS_PTRACE",
"--cap-add=PERFMON",
"--security-opt",
"seccomp=unconfined",
"--privileged"
],
"features": {
"ghcr.io/devcontainers/features/rust:1": {
"version": "stable",
"profile": "default"
}
},
"mounts": [
"source=${localEnv:HOME}/.ssh,target=/home/paimon/.ssh,type=bind,readonly",
"source=paimon-cargo-registry,target=/home/paimon/.cargo/registry,type=volume",
"source=paimon-cargo-git,target=/home/paimon/.cargo/git,type=volume",
"source=paimon-rust-target,target=${containerWorkspaceFolder}/crates/tantivy_ffi/target,type=volume",
"source=paimon-build,target=${containerWorkspaceFolder}/build,type=volume",
"source=paimon-ccache,target=/home/paimon/.ccache,type=volume"
],
"postCreateCommand": "sudo chown -R paimon:paimon ${containerWorkspaceFolder}/build ${containerWorkspaceFolder}/crates/tantivy_ffi/target /home/paimon/.ccache /home/paimon/.cargo/registry /home/paimon/.cargo/git 2>/dev/null || true; cargo install cbindgen --locked || true; rustup component add rust-src rust-analyzer clippy rustfmt || true",
"customizations": {
"vscode": {
"extensions": [
"eamodio.gitlens",
"rust-lang.rust-analyzer",
"vadimcn.vscode-lldb",
"llvm-vs-code-extensions.vscode-clangd",
"ms-vscode.cmake-tools",
"twxs.cmake"
],
"settings": {
"editor.formatOnSave": true,
"rust-analyzer.linkedProjects": [
"crates/tantivy_ffi/Cargo.toml"
]
}
}
}
}