Skip to content

Conversation

@JacobLef
Copy link
Contributor

@JacobLef JacobLef commented Nov 13, 2025

Containerized the api and ui folders using their respective docker files, using multi-stage containerization. This means that we have a builder as the base for both images, on top of which the dev and production images copy the necessary information. UI image for production uses an nginx proxy servy as that is the industry standard; this however is just mostly boilerplate from online as it generally is always the same for simpler vue.js projects.

There are two docker compose files: a dev and prod one. The dev docker compose file permits hot-reload, meaning we should always use that whenever developing or testing. The prod docker container does NOT permit this, but should be run each time we push to main; this means we fully rebuild the project and relaunch the prod to ensure everything is working-- I guess this is moreso important for QA testing.

A health route was also added to the api/routes folder to ensure that the api is healthy and has no issues automatically for us. .dockerignore file has been added with relevant files and there is a .env file you will need to place into your root directory to run the program (Ananya I will dm this to you).

Comments were added to the production compose file and the any other production docker components.

…are partially completed, but could be incorrect.
…ations. Also added health check routes for the Docker conainer build.
…onfigs for api and frontend. Added a docker-compose.dev file for development lifecyle such that it has hot reload; the production does not have hot reload.
…ssertion errors in vue files. Import inconsitencies with node modules is an issue in backend, api container.
…end configuration is erroring due to shared file changes.
…ers. Update package.json to be consistent with the tsconfig updates.
…he objet Id's are serialized anyways when given from backend, this makes no difference in the actual code.
…backend docker file to use a deployment instead of symlink to lower disk storage cost of docker file. Fixed issues with shared file types not being synced to ui and api.
… or .cjs as that had conflicts with the vite modules. Updated the pacakge.json to exclude tsc-alias. Updated compose dev file to reflect these file extension changes.
…or the ui (5173). Updated nginx.conf gile to reflect this change. Updated README to also reflect these changes.
Updated README to clarify commands for building images and starting services.
…/sandboxnu/seitz into 195-application-containerization

Merge README updates with script updates.
…wn scripts. Updated README to reflect these changes. Added comments to the production compose file as well as the ui dockerfile.
@JacobLef JacobLef marked this pull request as ready for review November 13, 2025 23:49
@arath7 arath7 force-pushed the 195-application-containerization branch from 04c7a82 to f01de7d Compare December 18, 2025 21:28
role: {
type: String,
enum: Object.values(Role),
enum: Object.values(Role), // ?? {}),
Copy link
Collaborator

Choose a reason for hiding this comment

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

remove or address this comment

@arath7 arath7 merged commit d0353d9 into main Dec 18, 2025
3 checks passed
@arath7 arath7 deleted the 195-application-containerization branch December 18, 2025 21:38
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.

3 participants