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

Dockerize #29

Closed
f-nunez opened this issue Mar 30, 2023 · 3 comments
Closed

Dockerize #29

f-nunez opened this issue Mar 30, 2023 · 3 comments
Assignees

Comments

@f-nunez
Copy link
Owner

f-nunez commented Mar 30, 2023

As a product owner, I want turn the current applications into Docker containers as an alternative for development and deployment.

SharedKernel's nuget packages should be imported as local source on each required solution to avoid developers build those nugets on their own.

An explicit folder should be created for handling Patient's photos between solutions on the repository for fast development. Consider that could be mounted into a Volume on ClinicManagement Api and Scheduling Api.

Self-Signed SSL should be implemented on each deployment.

Configure local host/machine DNS to simulate a DNS server. Naming subdomains for each public app like clinicmanagement-blazor.vc.local, scheduling-blazor.vc.local and identity-api.vc.local.

On each existing application it must perform the following tasks:
Scaffold application.
Create a Dockerfile.
Create a Docker ignore file.
Build image.
Run container.

Criteria:

  • Allocate nugets into a folder called local_nugets. Example: "\SharedKernel\local_nugets\Fnunez.VeterinaryClinic.SharedKernel.Domain.1.3.2.nupkg"
  • Import SharedKernel nugets in each required solution (ClinicManagement, ClinicManagementNotifications, Scheduling, SchedulingNotifications, SchedulingEmailSender).
  • Add Docker's ignore file in each solution.
  • Add Dockerfile for building image in each solution.
  • Add and configure a Docker compose to build the entire solution.
  • Add a file server (Samba) to improve sharing data between Backend.
  • Add at least a custom network to avoid default Docker network.
  • Expose required ports for inbound and outbound to talk to other containers.
  • Assign ports from 14330+ for databases forwarding the default port 1433 for local debugging through SQL Manager Studio.
  • Databases should be accessed from host machine through 127.0.0.1 plus its connection string properties.

Plus (Extra):

  • Each boundary context should have its own virtual network
  • RabbitMq should have its own virtual network shared through required boundary context
  • File server should have its own virtual network shared to required boundary context
  • Deploy (Frontend) with a DNS name instead of localhost
  • Add and run self-certified in each container
  • Add multiple environment stages (Local Development, Docker Development, Docker Nginx)
@f-nunez f-nunez self-assigned this Mar 30, 2023
@harshit82
Copy link

Hey @f-nunez, I am new to Docker and am looking for opportunities to learn and contribute.
Can I work on this?

@f-nunez
Copy link
Owner Author

f-nunez commented Apr 12, 2023

Hi @harshit82 , sorry for the delay. Glad to see you interested in contributing.

Actually, I must have to work on this because it requires changes to the requirements.

But after finish this, I can create and let you take a feature about implementing Docker best practices (covering standard conventions, security/vulnerabilities, race conditions, and things like that).

@harshit82
Copy link

How thoughtful of you, thanks.

f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
f-nunez added a commit that referenced this issue Apr 18, 2023
@f-nunez f-nunez closed this as completed Apr 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

No branches or pull requests

2 participants