FEAT local Docker setup for running GUI or Jupyter#1357
FEAT local Docker setup for running GUI or Jupyter#1357romanlutz wants to merge 10 commits intoAzure:mainfrom
Conversation
…ion, helper scripts, update release instructions, github workflows for automated validation
| if result.returncode != 0: | ||
| print() | ||
| print("❌ Failed to build devcontainer base image") | ||
| return False |
There was a problem hiding this comment.
Should this error be more descriptive?
There was a problem hiding this comment.
It still prints out the entire build info so it's not hiding any details 🙂
| # Production mode but no frontend found - warn but don't exit | ||
| # This allows API-only usage | ||
| print("⚠️ WARNING: Frontend not found!") | ||
| print(f" Expected location: {frontend_path}") | ||
| print(" The frontend must be built and included in the package.") | ||
| print(" Run: python build_scripts/prepare_package.py") | ||
| sys.exit(1) | ||
| print(" API endpoints will still work but the UI won't be available.") |
There was a problem hiding this comment.
I'm not sure I understand why this is a warning. Is API-only access not a desired behavior for production PyRIT?
There was a problem hiding this comment.
In "dev" mode you run the frontend separately with vite because it auto-updates when you make changes. In "prod" (i.e., release version) the frontend is bundled with the package so it really should have the frontend available otherwise something is wrong. That said, I anticipate that we'll have backend-only use cases at some point.
|
|
||
| # Check if npm is available | ||
| try: | ||
| result = subprocess.run(["npm", "--version"], capture_output=True, text=True, check=True) |
There was a problem hiding this comment.
Do we need to check npm versioning?
There was a problem hiding this comment.
No, but it can't hurt?
…fter Feb-01-2026 (Azure#1356)
9a60687 to
8006366
Compare
Description
We had an existing local Docker setup in the
/dockerdirectory that was very fragile and didn't work well. This PR improves this docker setup in a variety of ways: