hackforla / VRMS

Volunteer Relationship Management System: This is an ambitious project to create a system that will help us measure our human capital development, reduce repetitive tasks and processes, and improve outcomes.
GNU Affero General Public License v3.0
40 stars 79 forks source link

Dockerize application #295

Closed nickbeaird closed 4 years ago

nickbeaird commented 4 years ago

After talking with Alex, it was noted that putting the application in Docker would help the team members run the application in an OS agnostic manner. We would like to get the application running.

Potential issues/blockers: [x] Get application running in 12-factor application fashion using only environment variables [x] Get tests on the frontend and backend to give ourselves some sense that our refactoring has not broken the application. [ ] (IN PROGRESS) Get authentication running without Firebase to verify that changes are not breaking the application [ ] (IN PROGRESS) Remove long list of error and linter warnings, so that we can better identify issues caused by moving the application into Docker [ ] (MAY BE OUT OF SCOPE) Move the console.log statements to logger statements, so that we can telegraph or persist warnings/messages from container logs.

Goals: [ ] Docker-compose file [ ] A readme lists all commands to get the application up and running [ ] The linters, tests, and application runs as expected [ ] A follow up story is generated to get the application working in the build pipeline

nickbeaird commented 4 years ago

Progress: The work in flight is caught by other PRs in progress.

Blockers: See the potential blockers/issues listed in the ticket

Availability: Once the linter work is approved and finalized, then I can move into this.

ETA: A few days for a prototype

nickbeaird commented 4 years ago

Progress: A little work made on this.

Blockers: I believe that using Auth on localhost is in the way. The current auth setup does not work for localhost, and requires extensive manual manipulation. The new magiclink work that is in flight also requires a bad workaround to redirect localhost through a URL. The solution needs review. (see https://github.com/hackforla/VRMS/pull/290).

Availability: Between 3-430pm.

ETA: A week once we have auth, linters, and a few basic tests written to verify that these changes do not break the admin section of the app for us.

nickbeaird commented 4 years ago

Progress: I created a docker setup for development purposes (see the associated PR).

Blockers: I believe that we are in that grey middle area of the chicken and the egg with does Auth or Docker come first. I think that we have a working dev environment, but we have a lot of unknowns on what does this application look like once deployed. I am not sure if we should be deploying directly to a VM, or using a container. A lot of that working seems to depend on can we reach out to our Auth provider. If our current auth works, then great, but if there are any issues with our Auth, then we need to get something in to replace it....asap. Will this PR that I put in for Auth be a valid band-aid??? That is TBD. https://github.com/hackforla/VRMS/pull/290.

Availability: Between 3-430pm. Evening are hard as I work early.

ETA: TBD: Auth? Docker?....what do we need first and what is the blocker?

nickbeaird commented 4 years ago

Progress: I have some working Docker containers working for local development. You might want to try it out. I need to figure out our docker container strategy and how we will deploy.

Blockers: How to configure DNS at some point.

Availability: Between 3-430pm. Evening are hard as I work early.

ETA: A week or so.

nickbeaird commented 4 years ago

Progress: The application runs locally. We have Github actions using docker containers to run unit tests on all PRs. We have a deployment to docker hub as part of the deploy process. Need to get a workin example in AWS.

Blockers: None

Availability: Between 3-430pm. Evening are hard as I work early.

ETA: A week or so.

alex-anakin commented 4 years ago

Mostly done.