JeffersonLab / smoothness

Web application template based on JQuery UI Smoothness theme
https://ace.jlab.org/smoothness-demo
MIT License
0 stars 0 forks source link

Consider cloud IDE with cloud dev container #3

Open slominskir opened 1 year ago

slominskir commented 1 year ago

Currently the recommended approach to development is to use an IDE installed on a local workstation. In the near future development may be mostly happening in a web browser. I already make minor changes such as documentation changes routinely in-browser on github.com.

Local workstation development requires users to install an IDE and other tooling, plus patch and update constantly. Ideally this is repeated similarly for each member of a team and in each office of each person (I currently must patch IntelliJ, Docker, Java, and Gradle on my home office PC, work office PC, and travel Macbook). A docker compose quick start is great, but running it in a dev container is even better as it reduces the difficulty of entry for interested parties even lower, especially great for potential contributors.

Up and coming cloud development solutions include GitHub codespaces and IntelliJ spaces plus dozens of others. Cost is a consideration though as free tiers have limited hosted resources.

slominskir commented 1 year ago

Tried out codespaces. It's pretty cool as everything happens in-browser via visual studio code web edition. The built-in terminal is actually pretty good (you can create multiple tabs, run docker compose up in one while running docker exec in another, and htop in another and gradlew build in another.). This project needs the 8GB container (as opposed to default 4GB) else runs out of memory and fails to start the oracle database container when executing docker compose up (inside the dev container). Would probably be most useful if a dev container prebuild was created. However, you have to be an organization admin to do that (I can only create prebuilds for my personal projects). Also, the docker-in-docker has some quirks that would need to be worked around - in this project our app redirects users on login to keycloak, and that doesn't work in this dev container env because the host names used for port-forwarding are created on the fly and randomly assigned whereas the current local workstation development relies on fixed localhost name and fixed ports for the redirect to https and redirect to keycloak and redirect back to demo app.

slominskir commented 5 months ago

Redirect issue persists, but you can use docker in sibling mode and manually pre-build image: https://github.com/orgs/community/discussions/113197