blob: 007633145008a20ec5f4a839fa01bff4b978d352 [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.
*/
// x86_64 variant of the Paimon CPP Dev Container.
// On Apple Silicon hosts this runs under QEMU emulation (5-10x slower).
// Use it only for cross-architecture verification, not daily development.
//
// Reuses the same Dockerfile as the default container; only the platform differs.
//
// Uses dedicated named volumes (suffix `-amd64`) so build/cargo cache do not
// collide with the native aarch64 container.
{
"name": "Paimon CPP Dev Container (x86_64 via QEMU)",
"build": {
"dockerfile": "../Dockerfile",
"options": [
"--platform=linux/amd64"
]
},
"runArgs": [
"--platform=linux/amd64",
"--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-amd64,target=/home/paimon/.cargo/registry,type=volume",
"source=paimon-cargo-git-amd64,target=/home/paimon/.cargo/git,type=volume",
"source=paimon-rust-target-amd64,target=${containerWorkspaceFolder}/crates/tantivy_ffi/target,type=volume",
"source=paimon-build-amd64,target=${containerWorkspaceFolder}/build,type=volume",
"source=paimon-ccache-amd64,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"
],
"settings": {
"editor.formatOnSave": true
}
}
}
}