Edition 0 Updated to asp. Net core 0


SQL Server running as a container with a microservice-related



Yüklə 11,82 Mb.
Pdf görüntüsü
səhifə117/288
tarix12.07.2023
ölçüsü11,82 Mb.
#136458
1   ...   113   114   115   116   117   118   119   120   ...   288
NET-Microservices-Architecture-for-Containerized-NET-Applications

SQL Server running as a container with a microservice-related 
database 
In eShopOnContainers, there’s
a container named 
sqldata
, as defined in the 
docker-compose.yml
 file, 
that runs a SQL Server for Linux instance with the SQL databases for all microservices that need one. 
A key point in microservices is that each microservice owns its related data, so it should have its own 
database. However, the databases can be anywhere. In this case, they are all in the same container to 
keep Docker memory requirements as low as possible. Keep in mind that this is a good-enough 
solution for development and, perhaps, testing but not for production. 
The SQL Server container in the sample application is configured with the following YAML code in the 
docker-compose.yml file, which is executed when you run 
docker-compose up
. Note that the YAML 
code has consolidated configuration information from the generic docker-compose.yml file and the 
docker-compose.override.yml file. (Usually you would separate the environment settings from the 
base or static information related to the SQL Server image.) 
sqldata:
image:
mcr.microsoft.com/mssql/server:2017-latest
environment:
-
SA_PASSWORD=Pass@word 
-
ACCEPT_EULA=Y 
ports:
-
"5434:1433"
In a similar way, instead of using 
docker-compose
, the following 
docker run
command can run that 
container: 
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Pass@word' -p 5433:1433 -d 
mcr.
microsoft
.
com
/mssql/server:2017-latest 
However, if you are deploying a multi-container application like eShopOnContainers, it is more 
convenient to use the 
docker-compose up
command so that it deploys all the required containers for 
the application. 
When you start this SQL Server container for the first time, the container initializes SQL Server with the 
password that you provide. Once SQL Server is running as a container, you can update the database 
by connecting through any regular SQL connection, such as from SQL Server Management Studio, 
Visual Studio, or C# code. 
The eShopOnContainers application initializes each microservice database with sample data by 
seeding it with data on startup, as explained in the following section. 
Having SQL Server running as a container is not just useful for a demo where you might not have 
access to an instance of SQL Server. As noted, it is also great for development and testing 


129 
CHAPTER 5 | Designing and Developing Multi-Container and Microservice-Based .NET Applications 
environments so that you can easily run integration tests starting from a clean SQL Server image and 
known data by seeding new sample data. 

Yüklə 11,82 Mb.

Dostları ilə paylaş:
1   ...   113   114   115   116   117   118   119   120   ...   288




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin