Skip to content

Conversation

@choldgraf
Copy link
Member

@choldgraf choldgraf commented Aug 8, 2025

This PR does a few things:

  • Cleans up a bit of the dynamic image building guide with the goal of making it easier to discover, and to include a bit more content.
  • Consolidates our environment docs under a single section so that it's less cluttered and easier to find them.
  • Adds a button pop-up to file a request for this feature with our widget.
  • Extras
    • Adds a contributor guide page that just loads CONTRIBUTING.md
    • Documents the widget in the guide and how others can use it
    • Fixes some CSS so that the buttons look nicer by default

👉 This is the main change

👉 See it previewed here

Request for feedback: It takes some inspiration from the DevSeed docs that @chuckwondo put together (🙏) - maybe he or @maxrjones would be willing to give this a quick look and let me know if something like this would have been useful for the VEDA team to either point to, or to just take an re-mix for their own needs? I'm trying to make documentation like this ease the burden on communities like VEDA who need to explain hub functionality (or to help them discover that it exists in the first place!)

Copy link
Contributor

@chuckwondo chuckwondo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @choldgraf. This looks great! I've made only 2 small suggestions for perhaps a bit more clarity around some of the wording regarding the recognized configuration files.

@chuckwondo
Copy link
Contributor

Tangentially, from the earlier reorg you did, it appears that perhaps the additional information about which user is the current user when the postBuild and start scripts are executed didn't make it into their respective sections.

When I put together the VEDA DevSeed docs you mentioned, that was a point of frustration for me to try to discover, having to dig through the repo2docker code to determine that based upon how the Dockerfile is constructed, along with a fair bit of trial and error.

For anybody wanting to take advantage of either script, it is important to know whether the scripts are run as root or not, in order to know what the limitations are (if not running as root) regarding what the scripts can/cannot do and where they might be able/unable to install things.

For example, using postBuild, I was trying to install pixi in a place where the jupyter server would be able to find it so that installing the pixi kernel would work. IIRC, it took me quite a bit of experimenting to discover that I could not install to a place on the PATH, like /usr/bin, because postBuild is not run as root. I have to check, but I think I ended up installing it to $CONDA_BIN because that's owned by jovyan, which is what I believe postBuild is run as.

(I may have also gotten things to work by installing pixi to ~/.local/bin, but pixi does some odd things with where it writes other files, so I didn't want to clutter my home dir, nor deal with other quirks of the home dir introduced by the VEDA Hub itself. For example, last I checked using start in the VEDA Hub causes container startup to fail.)

I imagine that anybody attempting to do something beyond the basics with postBuild and/or start will very likely want to know which user they're run as.

choldgraf and others added 3 commits August 8, 2025 09:13
Co-authored-by: Chuck Daniels <cjdaniels4@gmail.com>
Co-authored-by: Chuck Daniels <cjdaniels4@gmail.com>
@choldgraf
Copy link
Member Author

Thanks @chuckwondo ! For your question, my preference would be for us to clarify this in the repo2docker docs, and then we can have a brief call-out here like:

```{admonition} repo2docker runs commands as the user `jovyan`, not root
See [the repo2docker docs for guidelines]( )
```

So, could you suggest a natural spot in the r2d docs where this could be clarified better, and then we can do a quick upstream fix and I'll link to it?

@choldgraf
Copy link
Member Author

OK I think that I've implemented all of @chuckwondo 's suggestions and have a sister PR in repo2docker. I nerd-sniped myself along the way and learned a bit about how to make the freshdesk widget pre-populate fields. So I've added a little docs guide to that too :-)

I think this is good to go unless there are objections! It depends on the r2d PR but I think it's OK if we have a broken link for a little bit until it gets merged.

@maxrjones
Copy link

This is so great! 🎉 ❤️

@choldgraf choldgraf merged commit 6ba913e into main Aug 8, 2025
1 check was pending
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create more structured documentation for dynamic imagebuilding

4 participants