mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-06-28 01:52:06 +08:00
Devcontainer (#29259)
* mvp devcontainer. builds, runs and UI works * fix indentation * enable color and fix openpilot_env path * separate dockerfile for devcontainer * use prebuilt image * Fix openpilot_env setup * Add dev container section in readme * Fix typo * Fix typo again * Move dev dockerfile to .devcontainer dir * Update README * Add note about x11 forwarding on macos * Update dev container json * Fix typo * Override DISPLAY on macOS * Mention XAUTHORITY for macOS setup in README * fix typo * Add devcontainer CI test * Rename to devcontainer * Fix git issues * ripgrep * Link instead of vscode manual * Replace raw path with containerWorkspaceFolder * Fix typo * Remove dev tools workflow * Link away X11 forwarding setup isntructions for mac * Remove fork consrtaint, add test run of scons * Add submodules as safe.directories in postStartCommand * Remove openpilot_env references * Add scons cache volume --------- Co-authored-by: Robbe Derks <robbe@localhost.localdomain> Co-authored-by: Kacper Rączy <gfw.kra@gmail.com> old-commit-hash: d71a7190f1210f5ac97ce16892552ecf495e2437
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
FROM ghcr.io/commaai/openpilot-base:latest
|
||||
|
||||
# remove gitconfig if exists, since its gonna be replaced by host one
|
||||
RUN rm -f /root/.gitconfig
|
||||
RUN apt update && apt install -y vim net-tools usbutils htop ripgrep
|
||||
RUN pip install ipython jupyter jupyterlab
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"name": "openpilot devcontainer",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile"
|
||||
},
|
||||
"postCreateCommand": "bash -c 'if [[ $DISPLAY == *xquartz* ]]; then echo \"export DISPLAY=host.docker.internal:0\" >> /root/.bashrc; fi'",
|
||||
"postStartCommand": "git config --file .gitmodules --get-regexp path | awk '{ print $2 }' | xargs -I{} git config --global --add safe.directory \"$PWD/{}\"",
|
||||
"privileged": true,
|
||||
"containerEnv": {
|
||||
"DISPLAY": "${localEnv:DISPLAY}",
|
||||
"PYTHONPATH": "${containerWorkspaceFolder}",
|
||||
"force_color_prompt": "1"
|
||||
},
|
||||
"runArgs": [
|
||||
"--volume=/tmp/.X11-unix:/tmp/.X11-unix",
|
||||
"--volume=${localEnv:XAUTHORITY}:/root/.Xauthority",
|
||||
"--volume=${localEnv:HOME}/.comma:/root/.comma",
|
||||
"--volume=/tmp/comma_download_cache:/tmp/comma_download_cache",
|
||||
"--volume=/tmp/devcontainer_scons_cache:/tmp/scons_cache",
|
||||
"--shm-size=1G"
|
||||
]
|
||||
}
|
||||
@@ -91,4 +91,20 @@ jobs:
|
||||
if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' && github.repository == 'commaai/openpilot'
|
||||
run: |
|
||||
$DOCKER_LOGIN
|
||||
docker push $DOCKER_REGISTRY/openpilot-docs:latest
|
||||
docker push $DOCKER_REGISTRY/openpilot-docs:latest
|
||||
|
||||
devcontainer:
|
||||
name: devcontainer
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
- name: Setup Dev Container CLI
|
||||
run: npm install -g @devcontainers/cli
|
||||
- name: Build dev container image
|
||||
run: devcontainer build --workspace-folder .
|
||||
- name: Run dev container
|
||||
run: devcontainer up --workspace-folder .
|
||||
- name: Test environment
|
||||
run: devcontainer exec --workspace-folder . scons --dry-run
|
||||
|
||||
@@ -38,6 +38,16 @@ Build openpilot with this command:
|
||||
scons -u -j$(nproc)
|
||||
```
|
||||
|
||||
### Dev Container
|
||||
|
||||
openpilot supports [Dev Containers](https://containers.dev/). Dev containers provide customizable and consistent development environment wrapped inside a container. This means you can develop in a designated environment matching our primary development target, regardless of your local setup.
|
||||
|
||||
Dev containers are supported in [multiple editors and IDEs](https://containers.dev/supporting), including [Visual Studio Code](https://code.visualstudio.com/docs/devcontainers/containers).
|
||||
|
||||
#### X11 forwarding on macOS
|
||||
|
||||
GUI apps like `ui` or `cabana` can also run inside the container by leveraging X11 forwarding. To make use of it on macOS, additional configuration steps must be taken. Follow [these](https://gist.github.com/sorny/969fe55d85c9b0035b0109a31cbcb088) steps to setup X11 forwarding on macOS.
|
||||
|
||||
### Windows
|
||||
|
||||
Neither openpilot nor any of the tools are developed or tested on Windows, but the [Windows Subsystem for Linux (WSL)](https://docs.microsoft.com/en-us/windows/wsl/about) should provide a similar experience to native Ubuntu. [WSL 2](https://docs.microsoft.com/en-us/windows/wsl/compare-versions) specifically has been reported by several users to be a seamless experience.
|
||||
|
||||
Reference in New Issue
Block a user