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

build: containerize monorepo #66

Open
JowiAoun opened this issue Aug 18, 2024 · 3 comments
Open

build: containerize monorepo #66

JowiAoun opened this issue Aug 18, 2024 · 3 comments
Labels
dependencies Pull requests that update a dependency file good first issue Good for newcomers help wanted Extra attention is needed

Comments

@JowiAoun
Copy link
Collaborator

Problem Statement
We have had instances where the following would happen:

  1. Dependencies might have been installed globally for a team member, but not for another 📦
  2. Dependencies could be on different version throughout environments 📚
  3. Path variables were installed on one computer, but not the other 🛣️
  4. Deployments would fail because they are different environments than the deployer's machine 💻
  5. Different operating systems & file systems may affect development down the line 👎

Many more problems will happen if we proceed the way we do, down to the operating system.
This has many solutions to it, and one way is to use Docker and containerize our apps.
Best explained by Docker on their website: "Package Software into Standardized Units for Development, Shipment and Deployment".
Basically, containerizing our app means that Docker will spin up containers (containing our frontend/backend/databases/etc), in environments that will be the exact same, wherever created. This includes on the cloud!

This helps resolve the stale resolution "Well, it works on my machine".

Goals

  1. Review previous docker-compose.yml file in the monorepo, and see it's current state now
  2. Research @nx-tools/nx-container
  3. Containerize the monorepo, meaning each app individually. Can be generated with the above plugin
  4. Attempt deployment by hand to AWS Fargate/ECS

Out of Scope
This will not include setting up the infrastructure code for the deployment. This will need to be done within issue #41.

Solution Summary

Solution
The solution is to have dev/prod/test environments that will require minimal steps, run without a problem, and run anywhere.

@JowiAoun JowiAoun added documentation enhancement New feature or request labels Aug 18, 2024
@JowiAoun JowiAoun self-assigned this Aug 18, 2024
@JowiAoun JowiAoun added infra dependencies Pull requests that update a dependency file and removed documentation enhancement New feature or request labels Aug 18, 2024
@HasithDeAlwis
Copy link
Collaborator

HasithDeAlwis commented Aug 24, 2024

Is it in scope for this Issue to setup a docker-publish.yml file to push to dockerhub? I don't know if we want to do this after we decided how we'll organize our actions folder, but it should be simple from what I can tell from reading some documentation.

@JeremyFriesenGitHub JeremyFriesenGitHub changed the title [ADR] Containerize monorepo [ADR]: Containerize monorepo Sep 9, 2024
@JeremyFriesenGitHub JeremyFriesenGitHub changed the title [ADR]: Containerize monorepo [ADR]: containerize monorepo Sep 14, 2024
@JowiAoun JowiAoun added the good first issue Good for newcomers label Oct 5, 2024
@JowiAoun JowiAoun changed the title [ADR]: containerize monorepo build: containerize monorepo Oct 5, 2024
@HasithDeAlwis
Copy link
Collaborator

Please write a comment to update us on the status of this @JowiAoun?

@JowiAoun
Copy link
Collaborator Author

Please write a comment to update us on the status of this @JowiAoun?

This is not a topic of focus right now. It will be needed in the future if we decide to deploy to OpenStack instances. I will change it as a nice to have for now, if any external contributors would like to work on this issue.

@JowiAoun JowiAoun added the help wanted Extra attention is needed label Oct 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file good first issue Good for newcomers help wanted Extra attention is needed
Projects
Status: 📋 Backlog
Development

When branches are created from issues, their pull requests are automatically linked.

2 participants