docker-compose up [options]
Options:
-d, --detach Detached mode: Run containers in the background, print new container names.
--always-recreate-deps Recreate dependent containers.
--build Build images before starting containers.
--force-recreate Recreate containers even if their configuration
more options: https://docs.docker.com/compose/reference/up/
clean prevously created containers:
docker-compose down
Expexted output:
CLI:
To see the list of containers in CLI: docker ps
Links:
CatalogApi: http://localhost:8091/swagger/index.html
UsersApi: http://localhost:8092/swagger/index.html
OrdersApi: http://localhost:8093/swagger/index.html
Rabbitmq server: http://localhost:15672/
MongoDb: http://localhost:27017/
Mssql: Data Source=localhost,1433; Initial Catalog=orders; Persist Security Info=True;User ID=SA;Password=Qwerty123456!@#
Run integration tests:
docker-compose -f docker-compose.tests.yml up integration-tests
Run needed projects via Project ot Docker profiles:
Pull rabbitmq and mondodb images if needed:
docker pull rabbitmq:3-management
docker pull mongo
Build image of needed service(s) docker build -t {name} -f {path} .
docker build -t catalog-api -f Catalog.Api/Dockerfile .
docker build -t users-api -f Users.Api/Dockerfile .
docker build -t orders-api -f Orders.Api/Dockerfile .
docker build -t users-worker -f Users.Worker/Dockerfile .
https://docs.docker.com/engine/reference/commandline/build/
Also images can be stored in DockerHub
To push images:
docker login
docker build -t {account_name}/{image_name} -f {path} .
docker push {account_name}/{image_name}
Images can be pulled via Docker desktop or CLI
docker pull {account_name}/{image_name}
Run images:
CLI:
Create new network if needed:
docker network create playground-network
Run image docker run -p {port if applicable} --name {container_name if applicaple} --network {network_name} {image_name}
If rabbitmq and mondodb are not installed locally then:
docker run --rm -it -p 15672:15672 -p 5672:5672 --network playground-network rabbitmq:3-management
docker run -p 27017:27017 --network playground-network mongo
Playground services:
docker run -p 8091:80 --network playground-network catalog-api
docker run -p 8092:80 --network playground-network users-api
docker run -p 8093:80 --network playground-network orders-api
docker run users-worker
https://docs.docker.com/engine/reference/commandline/run/
Docker desktop:
Services should be available via links:
CatalogApi: http://localhost:8091/swagger/index.html
UsersApi: http://localhost:8092/swagger/index.html
OrdersApi: http://localhost:8093/swagger/index.html
More information:
https://docs.docker.com/samples/dotnetcore/
https://docs.microsoft.com/en-us/dotnet/core/docker/introduction
https://docs.microsoft.com/en-us/visualstudio/containers/overview?view=vs-2022
https://docs.microsoft.com/en-us/visualstudio/containers/container-tools?view=vs-2022