Repository navigation
Development
Patrick José Pereira edited this page Sep 17, 2026
·
22 revisions
- Code-style
- Code-style is defined on the
eslintconfiguration file. What passes it is considered valid. New rules can/will come with time. - Exception to the rule above are variables names. While all other identifiers should follow the Google Javascript conventions, variables should use snake_case, to make them compatible with external APIs.
- Code-style is defined on the
- Files-naming
- Vue files use PascalCase while other files (e.g.: .ts) uses camel_case.
- Install docker
- Each operating system has a different way, but it's recommended to install the latest version, check the docker installation instructions.
- Make sure you follow the instructions to manage docker as a non-root-user.
- Install docker buildx
- Enable docker experimental features
- You can check that with
docker version - For more information check docker experimental README
- You can check that with
- Create a node to for armv7 with the correct configuration
docker buildx create --use --platform=linux/arm/v7 --buildkitd-flags '--allow-insecure-entitlement network.host --allow-insecure-entitlement security.insecure' --name arm-builder
- Pull latest changes to avoid building everything from scratch
docker pull --platform linux/arm/v7 bluerobotics/blueos-core:master
- Go inside the core folder
- Build it
- Be aware that crosscompiling the core image will take some time in a good computer.
docker buildx build --allow security.insecure --platform linux/arm/v7 . -t yourdockerhubuser/blueos-core:yournewtag --push --build-arg VITE_APP_GIT_DESCRIBE=$(git describe --long --always --dirty --all) --output type=registry --progress=plain
You can replace
yournewtagwith$(git rev-parse --abbrev-ref HEAD)to create images based on your development branch name
- Navigate to http://blueos.local:8081 and the new tag should show in VersionChooser when using your remote name
You can access it via: sudo docker exec -it blueos-core /usr/bin/tmux
- To develop the frontend first install yarn on your system.
- Go to the frontend folder with
cd core/frontend - Install the necessary packages with
yarn install - Now just do your changes and try them with
yarn serve
You can also lint your code anytime with yarn lint
Is know that qemu-arm-static version 5.2.0 has DNS problems, so git clone step may fail, for more information check this builx issue.
- Check qemu-arch-extra
You can build BlueOS locally in the development machine and upload to the BlueOS computer with:
docker buildx build --platform linux/arm64/v8 \
--build-arg GIT_DESCRIBE_TAGS="$(git describe --tags --long --always)" \
--build-arg VITE_APP_GIT_DESCRIBE="$(git describe --long --always --dirty --all)" \
--tag developer_name/blueos-core:dev-tag \
--file core/Dockerfile --output type=docker,dest=/tmp/dev-tag-arm64.tar ./core \
&& docker -H tcp://BLUEOS_IP:2375 load -i /tmp/dev-tag-arm64.tarYou can also do changes in the running BlueOS Version and commit a new BlueOS Version to share with others if necessary.
docker container ls
docker commit CONTAINER_ID DEV_USER/blueos-core:DEV_TAG