How to determine "User Custom Settings" for custom extension

Hello, I’m a college student working on a senior design project and am new to this area of development. I’m attempting to implement a Docker image in blueOS, which I’ve pushed to my Docker Hub at ‘judahwo/testrepo’. This image is a basic Python setup, and my goal is to use it in blueOS to run a simple Python script. Later, I plan to expand this to create custom scripts for my drone. I’ve successfully created the extension, as indicated in the attached image, but I’m unsure what to enter in the ‘settings’ and ‘user custom settings’ sections. At the moment, the status remains stuck at N/A. I would really appreciate any guidance on this matter, as I am quite new to all of this.

Thank you,

Not the guy you’re replying too, so I probably can’t answer your answer as completely as he can, but one thing that stands out to me is that you haven’t put anything in the original/custom settings. From what I understand its essentially like a docker-compose file that is structured into a json. If you don’t have anything in there BlueOS probably doesn’t know how to instantiate the docker image you gave it and does nothing. You should check out some of the other BlueOS extensions if you’re not sure how to configure it, looks pretty straightforward though.

Hi @judahwo,

Generally you should set the “Custom settings” field to be a JSON equivalent[1] of whatever you’ve set in the permissions label in your Extension’s Dockerfile.

The main exception to this is when you’re trying to test different permissions or bindings to those you thought you needed when you built the docker image.

I’m in the process of improving our Extension development documentation at the moment, so I’ve added this as something to include details about :slight_smile:

  1. Basically the same, just without the backslashes and any required variable replacements ↩︎

Thank you for the reply:

I tried to copy JSON from the extension examples. I need more time with permissions and bindings, I don’t understand them yet. I asked GPT as well, but still can’t get it to work. This is what I have.

The container still doesn’t run. I don’t know what I’m doing wrong.

You mentioned permissions in my dockerfile. This is what I have:

It’s very basic, I don’t have any permissions defined. Do I have to?

Hi @judahwo.

Try going to the terminal page, and using red-pill to access the host.

There, use docker ps -a to check all running containers.
That will show if your extension got actually created or not.
You can also do docker logs extension-<your-extension-name-and-version>. Sometimes our frontend fails to fetch the container logs.

Thank you very much. That solved my problem. I didn’t think to red-pill and look for the container there (duh). Running docker ps -a I noticed the container was starting and exiting immediately. I tried running it manually from the terminal I got an architecture mismatch. I built the image in WSL, so it was amd64. This was the reason it wasn’t loading properly. It now loads and runs like I need it to. Test complete, I can now start building more useful scripts. I’m sure I will have more questions later, but for now thanks to everyone who replied.

1 Like