Skip to content
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

Create Django version of eduNEXT Flask codejail service #894

Open
4 tasks
robrap opened this issue Jan 13, 2025 · 0 comments
Open
4 tasks

Create Django version of eduNEXT Flask codejail service #894

robrap opened this issue Jan 13, 2025 · 0 comments
Assignees

Comments

@robrap
Copy link
Contributor

robrap commented Jan 13, 2025

Acceptance Criteria:

PRs:

Implementation notes:

  • This will probably be a fairly straightforward combination of:
  • Only needs the happy path worked out for now, since we have a testing ticket that will explore the various sad paths.
  • New repo was requested of Axim here: [GH Request] Create openedx/codejail-service repo openedx/axim-engineering#1353
  • This should be generously timeboxed. We do want a Django version, but we also want to know if we hit any major snags.
  • We should be able to configure use of this service in both Studio and LMS using existing config (e.g. however the Flask service is configured).
  • The API of the service (e.g. LMS => codejail calls) should go unchanged.
  • Codejail will be a separate devstack docker container.
@robrap robrap added this to Arch-BOM Jan 13, 2025
@robrap robrap converted this from a draft issue Jan 13, 2025
@robrap robrap moved this from Backlog to Ready For Development in Arch-BOM Jan 14, 2025
@timmc-edx timmc-edx moved this from Ready For Development to In Progress in Arch-BOM Jan 16, 2025
@timmc-edx timmc-edx self-assigned this Jan 16, 2025
timmc-edx added a commit to edx/public-dockerfiles that referenced this issue Jan 23, 2025
Lots of differences from cookiecutter django-ida default:

- Remove MySQL system packages
- Use latest Ubuntu LTS
- Shorten the base folder from `codejail-service` to `codejail`
- Use port 8080; we'll remap it in compose anyhow
- Use ADD on a git repo rather than RUN/curl/tar, which runs afoul of
  Docker caching when a branch is used.
- Allow selecting a commit version
- Pass `DJANGO_SETTINGS_MODULE` from outside as env var to reduce
  differences between dev and prod targets and add flexibility.
- Install in /app and create virtualenv in /venv; no need to hew to the
  same pattern we used in the configuration repo.
- Remove apt cache in same RUN command so as not to create a fat layer
- Use heredoc syntax for multi-command RUN
- No log files, just log to stdout

See edx/edx-arch-experiments#894
timmc-edx added a commit to edx/public-dockerfiles that referenced this issue Jan 23, 2025
This is just a skeleton image and doesn't have any directories or packages
that are specific to codejail yet.

Lots of differences from cookiecutter django-ida default:

- Remove MySQL system packages
- Use latest Ubuntu LTS
- Shorten the base folder from `codejail-service` to `codejail`
- Use port 8080; we'll remap it in compose anyhow
- Use ADD on a git repo rather than RUN/curl/tar, which runs afoul of
  Docker caching when a branch is used.
- Allow selecting a commit version
- Pass `DJANGO_SETTINGS_MODULE` from outside as env var to reduce
  differences between dev and prod targets and add flexibility.
- Install in /app and create virtualenv in /venv; no need to hew to the
  same pattern we used in the configuration repo.
- Remove apt cache in same RUN command so as not to create a fat layer
- Use heredoc syntax for multi-command RUN
- No log files, just log to stdout

See edx/edx-arch-experiments#894
timmc-edx added a commit to edx/devstack that referenced this issue Jan 23, 2025
The image specified here is not yet available, but should be the right
name for after <edx/public-dockerfiles#85>
merges. I've tested with a local tag.

This is part of edx/edx-arch-experiments#894
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Development

No branches or pull requests

2 participants