From 69e5fe9f21fcea372a0679e9b4e34c84062b5510 Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Sat, 11 Mar 2017 14:49:55 -0800 Subject: [PATCH] Using ${ESHOP_EXTERNAL_DNS_NAME_OR_IP} from docker-compose.override.yml, as well. Notice that when using "localhost" from the browser URL using the MVC app, you'd need to use the 10.0.75.1 IP in a "Docker for Windows" environment. Other than that, update the .env file with your IP or DNS name, and use that from the brower and the ${ESHOP_EXTERNAL_DNS_NAME_OR_IP} in all the docker-compose files. --- .env | 3 ++- docker-compose.override.yml | 22 ++++++++++++++-------- docker-compose.prod.yml | 5 +++-- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/.env b/.env index 2ce566356..fe49799c7 100644 --- a/.env +++ b/.env @@ -2,4 +2,5 @@ # Compose expects each line in an env file to be in VAR=VAL format. Lines beginning with # (i.e. comments) are ignored, as are blank lines. # Note: Values present in the environment at runtime will always override those defined inside the .env file. Similarly, values passed via command-line arguments take precedence as well. -ESHOP_EXTERNAL_DNS_NAME_OR_IP=192.168.88.248 \ No newline at end of file +# localhost should be swapped to your real IP or DNS name, like 192.168.88.248, etc. if testing from remote browsers or mobile devices +ESHOP_EXTERNAL_DNS_NAME_OR_IP=localhost \ No newline at end of file diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 4e24592cf..cc7615dc0 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -1,5 +1,10 @@ version: '2' +# The default docker-compose.override file can use the "localhost" as the external name for testing web apps within the same dev machine. +# The ESHOP_EXTERNAL_DNS_NAME_OR_IP environment variable is taken, by default, from the ".env" file defined like ESHOP_EXTERNAL_DNS_NAME_OR_IP=localhost +# but values present in the environment vars at runtime will always override those defined inside the .env file +# An external IP or DNS name has to be used (instead localhost and the 10.0.75.1 IP) when testing the Web apps and the Xamarin apps from remote machines/devices using the same WiFi, for instance. + services: basket.api: @@ -16,7 +21,7 @@ services: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:5101 - ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word - - ExternalCatalogBaseUrl=http://localhost:5101 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. + - ExternalCatalogBaseUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5101 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. ports: - "5101:5101" @@ -24,9 +29,9 @@ services: environment: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:5105 - - SpaClient=http://localhost:5104 + - SpaClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5104 - ConnectionStrings__DefaultConnection=Server=sql.data;Database=Microsoft.eShopOnContainers.Service.IdentityDb;User Id=sa;Password=Pass@word - - MvcClient=http://localhost:5100 #Local: You need to open your local dev-machine firewall at range 5100-5105. + - MvcClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5100 #Local: You need to open your local dev-machine firewall at range 5100-5105. ports: - "5105:5105" @@ -43,10 +48,10 @@ services: environment: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:5104 - - CatalogUrl=http://localhost:5101 - - OrderingUrl=http://localhost:5102 - - IdentityUrl=http://localhost:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. - - BasketUrl=http://localhost:5103 + - CatalogUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5101 + - OrderingUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5102 + - IdentityUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. + - BasketUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5103 ports: - "5104:5104" @@ -56,8 +61,9 @@ services: - ASPNETCORE_URLS=http://0.0.0.0:5100 - CatalogUrl=http://catalog.api:5101 - OrderingUrl=http://ordering.api:5102 - - IdentityUrl=http://10.0.75.1:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. - BasketUrl=http://basket.api:5103 + - IdentityUrl=http://10.0.75.1:5105 #Local: Use 10.0.75.1 in a "Docker for Windows" environment, if using "localhost" from browser. + #Remote: Use ${ESHOP_EXTERNAL_DNS_NAME_OR_IP} if using external IP or DNS name from browser. ports: - "5100:5100" diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index de5dba15e..b9ad8c85f 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -3,7 +3,8 @@ version: '2' # The Production docker-compose file has to have the external/real IPs or DNS names for the services # The ESHOP_EXTERNAL_DNS_NAME_OR_IP environment variable is taken, by default, from the ".env" file defined like ESHOP_EXTERNAL_DNS_NAME_OR_IP=192.168.88.248 # but values present in the environment vars at runtime will always override those defined inside the .env file -# This configuration has to be used when testing the Web apps and the Xamarin apps from remote machines/devices using the same WiFi, for instance. +# An external IP or DNS name has to be used when testing the Web apps and the Xamarin apps from remote machines/devices using the same WiFi, for instance. +# # ASPNETCORE_ENVIRONMENT=Development just to get errors while testing. Could be set to "Production" # # You need to start it with the following CLI command: @@ -65,7 +66,7 @@ services: - ASPNETCORE_URLS=http://0.0.0.0:5100 - CatalogUrl=http://catalog.api:5101 - OrderingUrl=http://ordering.api:5102 - - IdentityUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 #Local: You need to open your host's firewall at range 5100-5105. at range 5100-5105. + - IdentityUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 #Local: Use ${ESHOP_EXTERNAL_DNS_NAME_OR_IP}, if using external IP or DNS name from browser. - BasketUrl=http://basket.api:5103 ports: - "5100:5100"