-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
change out .devcontainer content for Codespaces environments #183
Conversation
I think we may need to have two different containers for codespaces and containers:
|
I agree that these are two different things. 2 is absolutely a priority now because this helps people try Radius out. Things like "how do I install the VS Code extension" are blockers right now for getting good feedback on Radius and won't be blockers long term. My understanding is that this is what the PR accomplishes (let's do it!). For 1 (devcontainer for working on Radius) I want to know who the audience is before we invest time into it. This will require ongoing maintenance so we should do it when there's a good reason to. For example if/when Radius becomes a public OSS project, and we want to lower the barrier to contributing that's a good motivation. I can be outvoted on 1 of course if folks want to use a devcontainer to work on Radius. Then by all means, feel free 😆 I don't personally plan to use it since I have a setup I'm happy with already. |
It should be possible to optimize away some of this by publishing a base image to our registry. If we know more about what steps are costly it should be possible to factor this into separate images so that it doesn't have to build on your machine. For instance I think the Azure CLI ends up being quite large. |
This should work ok. If it ends up being a true blocker then we'll prioritize making our tutorials expose a public port. There's nothing stopping us, it's just work to do. |
We should use debian or ubuntu for the dev container. Alpine is so minimal that users will likely miss common userspace programs that aren't installed by default. We can add support for Radius on alpine we have a strong need to in the future. |
I think we should make the publishing of a base image part of our build. This allows us to have the images follow our branching conventions and tags. So for instance when you commit to the repo we build and push a new image for |
updates:
future enhancement ideas from this PR split out into: https://github.com/Azure/radius/issues/198 |
We should create a Dockerfile outside of .devcontainer that builds our tutorial image, and then create a GitHub workflow that builds the container on each change and pushes to our radius container image that is configured for public access |
accidentally came in as empty file previously
Ok, looks like I had a problem as a noob VS Code user. For some reason, the github workflow I made to auto-build and push to the radius.azurecr.io regsitry came into my branch at origin as an empty file. Fixed now. |
@AaronCrawfis totally agree. This is what the code is meant to do now that I fixed my push issue for the github file. Sorry about that. And luckily we don't even have to configure anything for public access. |
4/20 changes:
We'd also discussed adding some fancy footwork for docs-only PRs to build.yaml while I was adjusting it. I tried a couple things with no luck and decided not to hold up the Codespaces work with that change. Tracked here now: #280. TODO in github after merging:
|
collapse codespaces image build & main image build into a single job. fix typo in devcontainer.json.
Labels
Labels are configurable if we want to adjust them. Tagging Scheme
Btw, build.yaml is not currently relying on .github/scripts/get_release_version.py (but some other GitHub workflows still are). |
Where do these versions come from then? Regarding versioning all-up, I'm open to changing how it's implemented, but I'm concerned about us adopting something we understand. Can we simplify this? Here's what I think we need: Push to main -> |
still using build-push-action for Codespaces since I can specify a different Dockerfile.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@rynowak - I backed out the changes that converted the main container build to the newer buildx github actions.
Piping LDFLAGS through wasn't working properly, and this buildx actions change doesn't seem important enough block the actual Codespaces support.
- "Container image build" job in build.yaml should be unchanged compared to main
- Makefile should be unchanged compared to main
- Codespaces image build is inside build.yaml but it's a separate job. It uses the buildx setup with caching etc, since the build-push-action@v2 lets me specify a Dockerfile and build context/directory.
- Codespaces image tags are:
- push to main: "latest"
- PR: builds with REL_VERSION but doesn't push
- tag: REL_CHANNEL
#322 is open for that additional change to pull the rad build directly.
|
||
# Install rad CLI (Linux) | ||
# TODO: change to make binary directly inside this Dockerfile? | ||
RUN wget -O /usr/local/bin/rad https://radiuspublic.blob.core.windows.net/tools/rad/edge/linux-x64/rad |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
based on our chat earlier this week, I opened a new issue #322 for that change to pulling rad
directly
dismissing to convert previous request for change into just comments since that code is outdated.
🍾 🚀 🥳 |
* Moving the container-app to referrence * Container app reference page created and older pages hidden. * Add gitHub to button shortcode * Update docs/content/getting-started/reference-apps/container-app-store/_index.md Co-authored-by: Aaron Crawfis <Aaron.Crawfis@microsoft.com> Co-authored-by: Aaron Crawfis <Aaron.Crawfis@microsoft.com>
Current state
This change enables support for running the tutorials directly from the terminal inside Codespaces.
Pre-installed:
Note: This implementation is based on VSCode's universal:1.3.0 image, which consistently takes ~2 min to build for me when launching a new Codespace.
Futures
Still under investigation:
main
?