Hi, Since around 4.56.0 and any newer versions myTraefik container has stopped working and therefore my other containers can no longer connect to each other and the sitecore 10.3 xm toplogy setup that I am using no longer works. I get the following errors in the logs on the Traefik container:
level=error msg="Provider connection error Error response from daemon: , retyring in (random time in seconds)" ProviderName=docker
level=error msg="Failed to retrieve information of the docker client and server host: Error response from daemon: " providerName=docker
some Env details:
COMPOSE_PROJECT_NAME=sitecore-xm1
COMPOSE_PROJECT_VERSION=1.0.0
SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxp/
SITECORE_DOCKER_MODULES_REGISTRY=scr.sitecore.com/sxp/modules/
SITECORE_TOOLS_REGISTRY=scr.sitecore.com/tools/
TOOLS_VERSION=10.2-1809
SITECORE_VERSION=10.3.0-ltsc2019
SITECORE_ASSETS_VERSION=6.4-1809
HEADLESS_SERVICES_VERSION=21.0.583-1809
MANAGEMENT_SERVICES_VERSION=5.1-1809
EXTERNAL_IMAGE_TAG_SUFFIX=ltsc2019
TRAEFIK_IMAGE=traefik:v2.5.3-windowsservercore-1809
TRAEFIK_ISOLATION=hyperv
ISOLATION=default
If I revert to an older version like 4.44.0 then it works fine again. Can anyone assist on how I would resolve this?
Thanks
There is no Docker 4.56, maybe you mean Docker Desktop 4.56. Make sure to update Docker and Traefik, as API for discovering services has changed, and you need both with the latest version.
Thanks. Yes I meant Docker Desktop. What version of Traefik would I use for Docker Desktop 4.56+ given I am currently using traefik:v2.5.3-windowsservercore-1809?
If I updated to traefik:v3.4.1-windowsservercore-1809, can I assume this would still work and with the v3 are there any new configurations I would need to consider:
services:
traefik:
isolation: ${TRAEFIK_ISOLATION}
image: ${TRAEFIK_IMAGE}
command:
"--ping"
"--api.insecure=true"
"--providers.docker.endpoint=npipe:////./pipe/docker_engine"
"--providers.docker.exposedByDefault=false"
"--providers.file.directory=C:/etc/traefik/config/dynamic"
"--entryPoints.websecure.address=:443"
"--entryPoints.websecure.forwardedHeaders.insecure"
ports:
"443:443"
"8079:8080"
healthcheck:
test: ["CMD", "traefik", "healthcheck", "--ping"]
volumes:
source: \.\pipe\docker_engine
target: \.\pipe\docker_engine
type: npipe
./traefik:C:/etc/traefik
depends_on:
id:
condition: service_healthy
cd:
condition: service_healthy
cm:
condition: service_healthy
So I have updated to Docker Desktop 4.60.1 and traefik:v3.4.1-windowsservercore-1809 and I still get the same issue:
2026-02-16T15:58:43Z ERR Failed to retrieve information of the docker client and server host error="Error response from daemon: " providerName=docker
2026-02-16T15:58:43Z ERR Provider error, retrying in 3.149567805s error="Error response from daemon: " providerName=docker
Same Service Configuration
services:
traefik:
isolation: ${TRAEFIK_ISOLATION}
image: ${TRAEFIK_IMAGE}
command:
"--ping"
"--api.insecure=true"
"--providers.docker.endpoint=npipe:////./pipe/docker_engine"
"--providers.docker.exposedByDefault=false"
"--providers.file.directory=C:/etc/traefik/config/dynamic"
"--entryPoints.websecure.address=:443"
"--entryPoints.websecure.forwardedHeaders.insecure"
ports:
"443:443"
"8079:8080"
healthcheck:
test: ["CMD", "traefik", "healthcheck", "--ping"]
volumes:
source: \.\pipe\docker_engine
target: \.\pipe\docker_engine
type: npipe
./traefik:C:/etc/traefik
depends_on:
id:
condition: service_healthy
cd:
condition: service_healthy
cm:
condition: service_healthy
Check Traefik releases (link ) and Traefik container images (link ).
Thanks but I have already tried the newest windowsservercore-1809 version? Am I just suppose to try different ones until something works?
Just search the hub for latest windows image (link ), which is v3.6.8-windowsservercore-ltsc2022.
It seems "Windows Server 2019" ("1809") is not supported anymore. You would need to downgrade Docker Desktop to a version with Docker Engine < v29 for the old Traefik version to continue to work.
OK. So I have downloaded and added traefik:v3.6.8-windowsservercore-ltsc2022
This also I assume means I need to change my env file for ltsc2022 for my sitecore 10.3.0 docker environment. So I followed this short guide:
Updated env:
TOOLS_VERSION=10.2-1809
SITECORE_VERSION=10.3.0-ltsc2022
SITECORE_ASSETS_VERSION=6.4-1809
HEADLESS_SERVICES_VERSION=21.0.583-1809
MANAGEMENT_SERVICES_VERSION=5.1-1809
EXTERNAL_IMAGE_TAG_SUFFIX=ltsc2022
TRAEFIK_IMAGE=traefik:v3.6.8-windowsservercore-ltsc2022
TRAEFIK_ISOLATION=hyperv
ISOLATION=process
Now everything is spinning up again but I still get 404 page when I try and hit one of my server containers. Looking at the Traefik logs I now see this:
2026-02-17T16:39:00Z ERR error="service \"cm-sitecore-xm1\" error: port is missing" container=cm-sitecore-xm1-04dcfd403936428aeacfb2e421d39fc3bac17e939b8fe5f7b4b09c0c9d0df01b providerName=docker
2026-02-17T16:39:00Z ERR error="service \"cd-sitecore-xm1\" error: port is missing" container=cd-sitecore-xm1-3196c0b89743ee9b7b4d4b0afc1d5d8f15ce1795d79ab17ee5920cf8a18cc0ca providerName=docker
2026-02-17T16:39:00Z ERR error="service \"id-sitecore-xm1\" error: port is missing" container=id-sitecore-xm1-f54bd2cb08366423246ed91fd5fecbe23e72f81081f6d80f75460f52ca8e1345 providerName=docker
So is there some additional configuration I am missing here?
Docker Compose:
services:
traefik:
isolation: ${TRAEFIK_ISOLATION}
image: ${TRAEFIK_IMAGE}
command:
"--ping"
"--api.insecure=true"
"--providers.docker.endpoint=npipe:////./pipe/docker_engine"
"--providers.docker.exposedByDefault=false"
"--providers.file.directory=C:/etc/traefik/config/dynamic"
"--entryPoints.websecure.address=:443"
"--entryPoints.websecure.forwardedHeaders.insecure"
ports:
"443:443"
"8079:8080"
healthcheck:
test: ["CMD", "traefik", "healthcheck", "--ping"]
volumes:
source: \.\pipe\docker_engine
target: \.\pipe\docker_engine
type: npipe
./traefik:C:/etc/traefik
depends_on:
id:
condition: service_healthy
cd:
condition: service_healthy
cm:
condition: service_healthy
redis:
isolation: ${ISOLATION}
image: ${SITECORE_DOCKER_REGISTRY}redis:3.2.100-${EXTERNAL_IMAGE_TAG_SUFFIX}
mssql:
isolation: ${ISOLATION}
image: ${SITECORE_DOCKER_REGISTRY}nonproduction/mssql-developer:2017-${EXTERNAL_IMAGE_TAG_SUFFIX}
environment:
SA_PASSWORD: ${SQL_SA_PASSWORD}
ACCEPT_EULA: "Y"
ports:
"14330:1433"
volumes:
type: bind
source: .\data\mssql-data
target: c:\data
mssql-init:
isolation: ${ISOLATION}
image: ${SITECORE_DOCKER_REGISTRY}sitecore-xm1-mssql-init:${SITECORE_VERSION}
environment:
SQL_SERVER: ${SQL_SERVER}
SQL_ADMIN_LOGIN: ${SQL_SA_LOGIN}
SQL_ADMIN_PASSWORD: ${SQL_SA_PASSWORD}
SQL_DATABASE_PREFIX: ${SQL_DATABASE_PREFIX}
SQL_CUSTOM_DATABASE_PREFIX_UPDATE_FROM: ${SQL_CUSTOM_DATABASE_PREFIX_UPDATE_FROM}
SITECORE_ADMIN_PASSWORD: ${SITECORE_ADMIN_PASSWORD}
POST_DEPLOYMENT_WAIT_PERIOD: 300
healthcheck:
test: ["CMD", "powershell", "-command", "if ([System.Environment]::GetEnvironmentVariable('DatabasesDeploymentStatus', 'Machine') -eq 'Complete') { exit 0 } else { exit 1}"]
start_period: 300s
interval: 5s
depends_on:
mssql:
condition: service_healthy
solr:
isolation: ${ISOLATION}
image: ${SITECORE_DOCKER_REGISTRY}nonproduction/solr:8.11.2-${EXTERNAL_IMAGE_TAG_SUFFIX}
ports:
"8984:8983"
volumes:
type: bind
source: .\data\solr-data
target: c:\data
environment:
SOLR_MODE: solrcloud
mem_limit: 8GB
healthcheck:
test: ["CMD", "powershell", "-command", "try { $$statusCode = (iwr http://solr:8983/solr/admin/cores?action=STATUS -UseBasicParsing).StatusCode; if ($$statusCode -eq 200) { exit 0 } else { exit 1} } catch { exit 1 }"]
solr-init:
isolation: ${ISOLATION}
image: ${SITECORE_DOCKER_REGISTRY}sitecore-xm1-solr-init:${SITECORE_VERSION}
environment:
SITECORE_SOLR_CONNECTION_STRING: http://solr:8983/solr
SOLR_CORE_PREFIX_NAME: ${SOLR_CORE_PREFIX_NAME}
depends_on:
solr:
condition: service_healthy
id:
isolation: ${ISOLATION}
image: ${SITECORE_DOCKER_REGISTRY}sitecore-id7:${SITECORE_VERSION}
environment:
Sitecore_Sitecore__IdentityServer__SitecoreMemberShipOptions__ConnectionString: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
Sitecore_Sitecore__IdentityServer__AccountOptions__PasswordRecoveryUrl: https://$ {CM_HOST}/sitecore/login?rc=1
Sitecore_Sitecore__IdentityServer__Clients__PasswordClient__ClientSecrets__ClientSecret1: ${SITECORE_IDSECRET}
Sitecore_Sitecore__IdentityServer__Clients__DefaultClient__AllowedCorsOrigins__AllowedCorsOriginsGroup1: https://$ {CM_HOST}
Sitecore_Sitecore__IdentityServer__CertificateRawData: ${SITECORE_ID_CERTIFICATE}
Sitecore_Sitecore__IdentityServer__PublicOrigin: https://$ {ID_HOST}
Sitecore_Sitecore__IdentityServer__CertificateRawDataPassword: ${SITECORE_ID_CERTIFICATE_PASSWORD}
Sitecore_License: ${SITECORE_LICENSE}
healthcheck:
test: ["CMD", "pwsh", "-command", "C:/Healthchecks/Healthcheck.ps1"]
timeout: 300s
depends_on:
mssql-init:
condition: service_healthy
labels:
"traefik.enable=true"
"traefik.http.routers.id-secure.entrypoints=websecure"
"traefik.http.routers.id-secure.rule=Host(${ID_HOST})"
"traefik.http.routers.id-secure.tls=true"
cd:
isolation: ${ISOLATION}
image: ${SITECORE_DOCKER_REGISTRY}sitecore-xm1-cd:${SITECORE_VERSION}
depends_on:
mssql-init:
condition: service_healthy
solr-init:
condition: service_started
redis:
condition: service_started
environment:
Sitecore_AppSettings_instanceNameMode:define: default
Sitecore_ConnectionStrings_Security: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
Sitecore_ConnectionStrings_Web: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Web;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
Sitecore_ConnectionStrings_ExperienceForms: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.ExperienceForms;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
Sitecore_ConnectionStrings_Solr.Search: http://solr:8983/solr;solrCloud=true
Sitecore_ConnectionStrings_Redis.Sessions: redis:6379,ssl=False,abortConnect=False
Sitecore_License: ${SITECORE_LICENSE}
SOLR_CORE_PREFIX_NAME: ${SOLR_CORE_PREFIX_NAME}
MEDIA_REQUEST_PROTECTION_SHARED_SECRET: ${MEDIA_REQUEST_PROTECTION_SHARED_SECRET}
LOG_LEVEL_VALUE: ${LOG_LEVEL_VALUE}
healthcheck:
test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
timeout: 300s
labels:
"traefik.enable=true"
"traefik.http.routers.cd-secure.entrypoints=websecure"
"traefik.http.routers.cd-secure.rule=Host(${CD_HOST})"
"traefik.http.routers.cd-secure.tls=true"
volumes:
type: bind
source: .\data\device-detection-data
target: C:\inetpub\wwwroot\App_Data\DeviceDetection
cm:
isolation: ${ISOLATION}
image: ${SITECORE_DOCKER_REGISTRY}sitecore-xm1-cm:${SITECORE_VERSION}
depends_on:
mssql-init:
condition: service_healthy
solr-init:
condition: service_started
id:
condition: service_started
environment:
Sitecore_AppSettings_instanceNameMode:define: default
Sitecore_ConnectionStrings_Core: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
Sitecore_ConnectionStrings_Security: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
Sitecore_ConnectionStrings_Master: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Master;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
Sitecore_ConnectionStrings_Web: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Web;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
Sitecore_ConnectionStrings_ExperienceForms: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.ExperienceForms;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
Sitecore_ConnectionStrings_Products: Data Source=173.247.95.58;Database=amiuser;User ID=allegromicro_sitecore;Password=yLNsiiRu4!
Sitecore_ConnectionStrings_Solr.Search: http://solr:8983/solr;solrCloud=true
Sitecore_ConnectionStrings_Sitecoreidentity.secret: ${SITECORE_IDSECRET}
Sitecore_AppSettings_Telerik.AsyncUpload.ConfigurationEncryptionKey: ${TELERIK_ENCRYPTION_KEY}
Sitecore_AppSettings_Telerik.Upload.ConfigurationHashKey: ${TELERIK_ENCRYPTION_KEY}
Sitecore_AppSettings_Telerik.Web.UI.DialogParametersEncryptionKey: ${TELERIK_ENCRYPTION_KEY}
Sitecore_License: ${SITECORE_LICENSE}
Sitecore_GraphQL_Enabled: ${SITECORE_GRAPHQL_ENABLED}
Sitecore_GraphQL_ExposePlayground: ${SITECORE_GRAPHQL_EXPOSEPLAYGROUND}
Sitecore_GraphQL_UploadMediaOptions_EncryptionKey: ${SITECORE_GRAPHQL_UPLOADMEDIAOPTIONS_ENCRYPTIONKEY}
Sitecore_Identity_Server_Authority: https://$ {ID_HOST}
Sitecore_Identity_Server_InternalAuthority: http://id
Sitecore_Identity_Server_CallbackAuthority: https://$ {CM_HOST}
Sitecore_Identity_Server_Require_Https: "false"
SOLR_CORE_PREFIX_NAME: ${SOLR_CORE_PREFIX_NAME}
MEDIA_REQUEST_PROTECTION_SHARED_SECRET: ${MEDIA_REQUEST_PROTECTION_SHARED_SECRET}
LOG_LEVEL_VALUE: ${LOG_LEVEL_VALUE}
healthcheck:
test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
timeout: 300s
labels:
"traefik.enable=true"
"traefik.http.middlewares.force-STS-Header.headers.forceSTSHeader=true"
"traefik.http.middlewares.force-STS-Header.headers.stsSeconds=31536000"
"traefik.http.routers.cm-secure.entrypoints=websecure"
"traefik.http.routers.cm-secure.rule=Host(${CM_HOST})"
"traefik.http.routers.cm-secure.tls=true"
"traefik.http.routers.cm-secure.middlewares=force-STS-Header"
adinesen:
error: port is missing
seems the internal port for a service needs to be specified. Maybe the target services used EXPOSE before to indicate which port to use.
whoami:
image: traefik/whoami:v1.11
networks:
- proxy
labels:
- traefik.enable=true
- traefik.http.routers.mywhoami.rule=Host(`whoami.example.com`)
- traefik.http.services.mywhoami.loadbalancer.server.port=80
I havent changed these configurations so EXPOSE hasnt been removed if that is what you mean?
how would I go about updating the config given they are effectively web servers served over https/ http?
As an example for my CM container instance I have added networks:proxy and the loadbalancer.server.port (at the bottom) for port 80, or should it be for 443 as I want to serve on https?
cm:
isolation: ${ISOLATION}
image: ${SITECORE_DOCKER_REGISTRY}sitecore-xm1-cm:${SITECORE_VERSION}
networks:
- proxy
depends_on:
mssql-init:
condition: service_healthy
solr-init:
condition: service_started
id:
condition: service_started
environment:
Sitecore_AppSettings_instanceNameMode:define: default
Sitecore_ConnectionStrings_Core: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
Sitecore_ConnectionStrings_Security: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
Sitecore_ConnectionStrings_Master: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Master;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
Sitecore_ConnectionStrings_Web: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Web;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
Sitecore_ConnectionStrings_ExperienceForms: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.ExperienceForms;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
Sitecore_ConnectionStrings_Products: Data Source=173.247.95.58;Database=amiuser;User ID=allegromicro_sitecore;Password=yLNsiiRu4!
Sitecore_ConnectionStrings_Solr.Search: http://solr:8983/solr;solrCloud=true
Sitecore_ConnectionStrings_Sitecoreidentity.secret: ${SITECORE_IDSECRET}
Sitecore_AppSettings_Telerik.AsyncUpload.ConfigurationEncryptionKey: ${TELERIK_ENCRYPTION_KEY}
Sitecore_AppSettings_Telerik.Upload.ConfigurationHashKey: ${TELERIK_ENCRYPTION_KEY}
Sitecore_AppSettings_Telerik.Web.UI.DialogParametersEncryptionKey: ${TELERIK_ENCRYPTION_KEY}
Sitecore_License: ${SITECORE_LICENSE}
Sitecore_GraphQL_Enabled: ${SITECORE_GRAPHQL_ENABLED}
Sitecore_GraphQL_ExposePlayground: ${SITECORE_GRAPHQL_EXPOSEPLAYGROUND}
Sitecore_GraphQL_UploadMediaOptions_EncryptionKey: ${SITECORE_GRAPHQL_UPLOADMEDIAOPTIONS_ENCRYPTIONKEY}
Sitecore_Identity_Server_Authority: https://${ID_HOST}
Sitecore_Identity_Server_InternalAuthority: http://id
Sitecore_Identity_Server_CallbackAuthority: https://${CM_HOST}
Sitecore_Identity_Server_Require_Https: "false"
SOLR_CORE_PREFIX_NAME: ${SOLR_CORE_PREFIX_NAME}
MEDIA_REQUEST_PROTECTION_SHARED_SECRET: ${MEDIA_REQUEST_PROTECTION_SHARED_SECRET}
LOG_LEVEL_VALUE: ${LOG_LEVEL_VALUE}
healthcheck:
test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
timeout: 300s
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.force-STS-Header.headers.forceSTSHeader=true"
- "traefik.http.middlewares.force-STS-Header.headers.stsSeconds=31536000"
- "traefik.http.routers.cm-secure.entrypoints=websecure"
- "traefik.http.routers.cm-secure.rule=Host(`${CM_HOST}`)"
- "traefik.http.routers.cm-secure.tls=true"
- "traefik.http.routers.cm-secure.middlewares=force-STS-Header"
- "traefik.http.services.cm.loadbalancer.server.port=80" * or 443??
Nevermind. I think I have it working now just by adding the server port setting to my container instances on the traefik network. Will test it further now it looks like it is working. Thanks