diff --git a/examples/helix-basic-aspnetcore/.config/dotnet-tools.json b/examples/helix-basic-aspnetcore/.config/dotnet-tools.json index eff19bd9..f1502036 100644 --- a/examples/helix-basic-aspnetcore/.config/dotnet-tools.json +++ b/examples/helix-basic-aspnetcore/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "sitecore.cli": { - "version": "4.0.0", + "version": "4.1.0", "commands": [ "sitecore" ] diff --git a/examples/helix-basic-aspnetcore/.env b/examples/helix-basic-aspnetcore/.env index 06fa1e61..98dcd96c 100644 --- a/examples/helix-basic-aspnetcore/.env +++ b/examples/helix-basic-aspnetcore/.env @@ -19,13 +19,16 @@ RENDERING_HOST=www.basic-company-aspnetcore.localhost SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxp/ SITECORE_MODULE_REGISTRY=scr.sitecore.com/sxp/modules/ SITECORE_TOOLS_REGISTRY=scr.sitecore.com/tools/ -SITECORE_VERSION=10.1-ltsc2019 -HEADLESS_SERVICES_VERSION=18.0-1809 +SITECORE_VERSION=10.2-ltsc2019 +HEADLESS_SERVICES_VERSION=19.0.0-1809 +HEADLESS_SERVICES_IMAGE=scr.sitecore.com/sxp/modules/sitecore-headless-services-xm1-assets:19.0.0-1809 MANAGEMENT_SERVICES_VERSION=4.0-1809 -TOOLS_VERSION=10.1-1809 +TOOLS_VERSION=10.2-1809 SITECORE_ADMIN_PASSWORD= +SQL_SERVER=mssql SQL_SA_PASSWORD= +SQL_SA_LOGIN=sa SOLR_CORE_PREFIX_NAME=sitecore TELERIK_ENCRYPTION_KEY= SITECORE_IDSECRET= diff --git a/examples/helix-basic-aspnetcore/.sitecore/schemas/ModuleFile.schema.json b/examples/helix-basic-aspnetcore/.sitecore/schemas/ModuleFile.schema.json index 68dde06b..0362079d 100644 --- a/examples/helix-basic-aspnetcore/.sitecore/schemas/ModuleFile.schema.json +++ b/examples/helix-basic-aspnetcore/.sitecore/schemas/ModuleFile.schema.json @@ -37,874 +37,6 @@ "description": "Generic identifier as to where the module came from. Used internally for error messaging. Do not set in a module file; it will be ignored." } } - }, - { - "title": "SerializationModuleConfiguration", - "type": "object", - "additionalProperties": {}, - "required": [ - "namespace" - ], - "properties": { - "$schema": { - "type": "string" - }, - "namespace": { - "type": "string", - "description": "The namespace of the module. All resources in the module inherit this namespace.\nNamespaces can contain letters, numbers, dots (.), and hyphens (-).", - "minLength": 1, - "pattern": "^[A-Za-z0-9\\.\\-\\$\\{\\}\\(\\)]+$" - }, - "description": { - "type": "string", - "description": "Description of the module, for reference/docs purposes only" - }, - "references": { - "type": "array", - "description": "Names of other modules that are referenced by resources in this module. Wildcards are allowed, i.e. Foundation.*.", - "items": { - "type": "string" - } - }, - "source": { - "type": "string", - "description": "Generic identifier as to where the module came from. Used internally for error messaging. Do not set in a module file; it will be ignored." - }, - "items": { - "$ref": "#/allOf/1/definitions/SerializationModuleConfigurationItems" - }, - "roles": { - "type": "array", - "items": { - "$ref": "#/allOf/1/definitions/RolePredicateItem" - } - } - }, - "definitions": { - "SerializationModuleConfigurationItems": { - "type": "object", - "additionalProperties": false, - "required": [ - "includes" - ], - "properties": { - "path": { - "type": "string" - }, - "includes": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/allOf/1/definitions/FilesystemTreeSpec" - } - }, - "excludedFields": { - "type": "array", - "items": { - "$ref": "#/allOf/1/definitions/FieldFilter" - } - } - } - }, - "FilesystemTreeSpec": { - "type": "object", - "additionalProperties": false, - "required": [ - "path", - "name" - ], - "properties": { - "path": { - "type": "string", - "minLength": 1 - }, - "scope": { - "$ref": "#/allOf/1/definitions/TreeScope" - }, - "allowedPushOperations": { - "$ref": "#/allOf/1/definitions/AllowedPushOperations" - }, - "rules": { - "type": "array", - "items": { - "$ref": "#/allOf/1/definitions/FilesystemTreeSpecRule" - } - }, - "maxRelativePathLength": { - "type": [ - "integer", - "null" - ], - "format": "int32" - }, - "name": { - "type": "string", - "minLength": 1 - }, - "database": { - "type": "string" - } - } - }, - "TreeScope": { - "type": "string", - "description": "", - "x-enumNames": [ - "SingleItem", - "ItemAndChildren", - "ItemAndDescendants", - "DescendantsOnly" - ], - "enum": [ - "singleItem", - "itemAndChildren", - "itemAndDescendants", - "descendantsOnly" - ] - }, - "AllowedPushOperations": { - "type": "string", - "description": "", - "x-enumNames": [ - "CreateUpdateAndDelete", - "CreateAndUpdate", - "CreateOnly" - ], - "enum": [ - "createUpdateAndDelete", - "createAndUpdate", - "createOnly" - ] - }, - "FilesystemTreeSpecRule": { - "type": "object", - "additionalProperties": false, - "required": [ - "path" - ], - "properties": { - "path": { - "type": "string", - "minLength": 1, - "pattern": "^(/.+|\\*)$" - }, - "scope": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/allOf/1/definitions/TreeRuleScope" - } - ] - }, - "allowedPushOperations": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/allOf/1/definitions/AllowedPushOperations" - } - ] - }, - "alias": { - "type": "string" - } - } - }, - "TreeRuleScope": { - "type": "string", - "description": "", - "x-enumNames": [ - "Ignored", - "SingleItem", - "ItemAndChildren", - "ItemAndDescendants" - ], - "enum": [ - "ignored", - "singleItem", - "itemAndChildren", - "itemAndDescendants" - ] - }, - "FieldFilter": { - "type": "object", - "additionalProperties": false, - "properties": { - "fieldId": { - "type": "string" - }, - "description": { - "type": "string" - } - } - }, - "RolePredicateItem": { - "type": "object", - "additionalProperties": false, - "properties": { - "domain": { - "type": "string" - }, - "pattern": { - "type": "string" - } - } - } - } - }, - { - "title": "SerializationModuleConfiguration", - "type": "object", - "additionalProperties": {}, - "required": [ - "namespace" - ], - "properties": { - "$schema": { - "type": "string" - }, - "namespace": { - "type": "string", - "description": "The namespace of the module. All resources in the module inherit this namespace.\nNamespaces can contain letters, numbers, dots (.), and hyphens (-).", - "minLength": 1, - "pattern": "^[A-Za-z0-9\\.\\-\\$\\{\\}\\(\\)]+$" - }, - "description": { - "type": "string", - "description": "Description of the module, for reference/docs purposes only" - }, - "references": { - "type": "array", - "description": "Names of other modules that are referenced by resources in this module. Wildcards are allowed, i.e. Foundation.*.", - "items": { - "type": "string" - } - }, - "source": { - "type": "string", - "description": "Generic identifier as to where the module came from. Used internally for error messaging. Do not set in a module file; it will be ignored." - }, - "items": { - "$ref": "#/allOf/2/definitions/SerializationModuleConfigurationItems" - }, - "roles": { - "type": "array", - "items": { - "$ref": "#/allOf/2/definitions/RolePredicateItem" - } - } - }, - "definitions": { - "SerializationModuleConfigurationItems": { - "type": "object", - "additionalProperties": false, - "required": [ - "includes" - ], - "properties": { - "path": { - "type": "string" - }, - "includes": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/allOf/2/definitions/FilesystemTreeSpec" - } - }, - "excludedFields": { - "type": "array", - "items": { - "$ref": "#/allOf/2/definitions/FieldFilter" - } - } - } - }, - "FilesystemTreeSpec": { - "type": "object", - "additionalProperties": false, - "required": [ - "path", - "name" - ], - "properties": { - "path": { - "type": "string", - "minLength": 1 - }, - "scope": { - "$ref": "#/allOf/2/definitions/TreeScope" - }, - "allowedPushOperations": { - "$ref": "#/allOf/2/definitions/AllowedPushOperations" - }, - "rules": { - "type": "array", - "items": { - "$ref": "#/allOf/2/definitions/FilesystemTreeSpecRule" - } - }, - "maxRelativePathLength": { - "type": [ - "integer", - "null" - ], - "format": "int32" - }, - "name": { - "type": "string", - "minLength": 1 - }, - "database": { - "type": "string" - } - } - }, - "TreeScope": { - "type": "string", - "description": "", - "x-enumNames": [ - "SingleItem", - "ItemAndChildren", - "ItemAndDescendants", - "DescendantsOnly" - ], - "enum": [ - "singleItem", - "itemAndChildren", - "itemAndDescendants", - "descendantsOnly" - ] - }, - "AllowedPushOperations": { - "type": "string", - "description": "", - "x-enumNames": [ - "CreateUpdateAndDelete", - "CreateAndUpdate", - "CreateOnly" - ], - "enum": [ - "createUpdateAndDelete", - "createAndUpdate", - "createOnly" - ] - }, - "FilesystemTreeSpecRule": { - "type": "object", - "additionalProperties": false, - "required": [ - "path" - ], - "properties": { - "path": { - "type": "string", - "minLength": 1, - "pattern": "^(/.+|\\*)$" - }, - "scope": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/allOf/2/definitions/TreeRuleScope" - } - ] - }, - "allowedPushOperations": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/allOf/2/definitions/AllowedPushOperations" - } - ] - }, - "alias": { - "type": "string" - } - } - }, - "TreeRuleScope": { - "type": "string", - "description": "", - "x-enumNames": [ - "Ignored", - "SingleItem", - "ItemAndChildren", - "ItemAndDescendants" - ], - "enum": [ - "ignored", - "singleItem", - "itemAndChildren", - "itemAndDescendants" - ] - }, - "FieldFilter": { - "type": "object", - "additionalProperties": false, - "properties": { - "fieldId": { - "type": "string" - }, - "description": { - "type": "string" - } - } - }, - "RolePredicateItem": { - "type": "object", - "additionalProperties": false, - "properties": { - "domain": { - "type": "string" - }, - "pattern": { - "type": "string" - } - } - } - } - }, - { - "title": "SerializationModuleConfiguration", - "type": "object", - "additionalProperties": {}, - "required": [ - "namespace" - ], - "properties": { - "$schema": { - "type": "string" - }, - "namespace": { - "type": "string", - "description": "The namespace of the module. All resources in the module inherit this namespace.\nNamespaces can contain letters, numbers, dots (.), and hyphens (-).", - "minLength": 1, - "pattern": "^[A-Za-z0-9\\.\\-\\$\\{\\}\\(\\)]+$" - }, - "description": { - "type": "string", - "description": "Description of the module, for reference/docs purposes only" - }, - "references": { - "type": "array", - "description": "Names of other modules that are referenced by resources in this module. Wildcards are allowed, i.e. Foundation.*.", - "items": { - "type": "string" - } - }, - "source": { - "type": "string", - "description": "Generic identifier as to where the module came from. Used internally for error messaging. Do not set in a module file; it will be ignored." - }, - "items": { - "$ref": "#/allOf/3/definitions/SerializationModuleConfigurationItems" - }, - "roles": { - "type": "array", - "items": { - "$ref": "#/allOf/3/definitions/RolePredicateItem" - } - } - }, - "definitions": { - "SerializationModuleConfigurationItems": { - "type": "object", - "additionalProperties": false, - "required": [ - "includes" - ], - "properties": { - "path": { - "type": "string" - }, - "includes": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/allOf/3/definitions/FilesystemTreeSpec" - } - }, - "excludedFields": { - "type": "array", - "items": { - "$ref": "#/allOf/3/definitions/FieldFilter" - } - } - } - }, - "FilesystemTreeSpec": { - "type": "object", - "additionalProperties": false, - "required": [ - "path", - "name" - ], - "properties": { - "path": { - "type": "string", - "minLength": 1 - }, - "scope": { - "$ref": "#/allOf/3/definitions/TreeScope" - }, - "allowedPushOperations": { - "$ref": "#/allOf/3/definitions/AllowedPushOperations" - }, - "rules": { - "type": "array", - "items": { - "$ref": "#/allOf/3/definitions/FilesystemTreeSpecRule" - } - }, - "maxRelativePathLength": { - "type": [ - "integer", - "null" - ], - "format": "int32" - }, - "name": { - "type": "string", - "minLength": 1 - }, - "database": { - "type": "string" - } - } - }, - "TreeScope": { - "type": "string", - "description": "", - "x-enumNames": [ - "SingleItem", - "ItemAndChildren", - "ItemAndDescendants", - "DescendantsOnly" - ], - "enum": [ - "singleItem", - "itemAndChildren", - "itemAndDescendants", - "descendantsOnly" - ] - }, - "AllowedPushOperations": { - "type": "string", - "description": "", - "x-enumNames": [ - "CreateUpdateAndDelete", - "CreateAndUpdate", - "CreateOnly" - ], - "enum": [ - "createUpdateAndDelete", - "createAndUpdate", - "createOnly" - ] - }, - "FilesystemTreeSpecRule": { - "type": "object", - "additionalProperties": false, - "required": [ - "path" - ], - "properties": { - "path": { - "type": "string", - "minLength": 1, - "pattern": "^(/.+|\\*)$" - }, - "scope": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/allOf/3/definitions/TreeRuleScope" - } - ] - }, - "allowedPushOperations": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/allOf/3/definitions/AllowedPushOperations" - } - ] - }, - "alias": { - "type": "string" - } - } - }, - "TreeRuleScope": { - "type": "string", - "description": "", - "x-enumNames": [ - "Ignored", - "SingleItem", - "ItemAndChildren", - "ItemAndDescendants" - ], - "enum": [ - "ignored", - "singleItem", - "itemAndChildren", - "itemAndDescendants" - ] - }, - "FieldFilter": { - "type": "object", - "additionalProperties": false, - "properties": { - "fieldId": { - "type": "string" - }, - "description": { - "type": "string" - } - } - }, - "RolePredicateItem": { - "type": "object", - "additionalProperties": false, - "properties": { - "domain": { - "type": "string" - }, - "pattern": { - "type": "string" - } - } - } - } - }, - { - "title": "SerializationModuleConfiguration", - "type": "object", - "additionalProperties": {}, - "required": [ - "namespace" - ], - "properties": { - "$schema": { - "type": "string" - }, - "namespace": { - "type": "string", - "description": "The namespace of the module. All resources in the module inherit this namespace.\nNamespaces can contain letters, numbers, dots (.), and hyphens (-).", - "minLength": 1, - "pattern": "^[A-Za-z0-9\\.\\-\\$\\{\\}\\(\\)]+$" - }, - "description": { - "type": "string", - "description": "Description of the module, for reference/docs purposes only" - }, - "references": { - "type": "array", - "description": "Names of other modules that are referenced by resources in this module. Wildcards are allowed, i.e. Foundation.*.", - "items": { - "type": "string" - } - }, - "source": { - "type": "string", - "description": "Generic identifier as to where the module came from. Used internally for error messaging. Do not set in a module file; it will be ignored." - }, - "items": { - "$ref": "#/allOf/4/definitions/SerializationModuleConfigurationItems" - }, - "roles": { - "type": "array", - "items": { - "$ref": "#/allOf/4/definitions/RolePredicateItem" - } - } - }, - "definitions": { - "SerializationModuleConfigurationItems": { - "type": "object", - "additionalProperties": false, - "required": [ - "includes" - ], - "properties": { - "path": { - "type": "string" - }, - "includes": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/allOf/4/definitions/FilesystemTreeSpec" - } - }, - "excludedFields": { - "type": "array", - "items": { - "$ref": "#/allOf/4/definitions/FieldFilter" - } - } - } - }, - "FilesystemTreeSpec": { - "type": "object", - "additionalProperties": false, - "required": [ - "path", - "name" - ], - "properties": { - "path": { - "type": "string", - "minLength": 1 - }, - "scope": { - "$ref": "#/allOf/4/definitions/TreeScope" - }, - "allowedPushOperations": { - "$ref": "#/allOf/4/definitions/AllowedPushOperations" - }, - "rules": { - "type": "array", - "items": { - "$ref": "#/allOf/4/definitions/FilesystemTreeSpecRule" - } - }, - "maxRelativePathLength": { - "type": [ - "integer", - "null" - ], - "format": "int32" - }, - "name": { - "type": "string", - "minLength": 1 - }, - "database": { - "type": "string" - } - } - }, - "TreeScope": { - "type": "string", - "description": "", - "x-enumNames": [ - "SingleItem", - "ItemAndChildren", - "ItemAndDescendants", - "DescendantsOnly" - ], - "enum": [ - "singleItem", - "itemAndChildren", - "itemAndDescendants", - "descendantsOnly" - ] - }, - "AllowedPushOperations": { - "type": "string", - "description": "", - "x-enumNames": [ - "CreateUpdateAndDelete", - "CreateAndUpdate", - "CreateOnly" - ], - "enum": [ - "createUpdateAndDelete", - "createAndUpdate", - "createOnly" - ] - }, - "FilesystemTreeSpecRule": { - "type": "object", - "additionalProperties": false, - "required": [ - "path" - ], - "properties": { - "path": { - "type": "string", - "minLength": 1, - "pattern": "^(/.+|\\*)$" - }, - "scope": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/allOf/4/definitions/TreeRuleScope" - } - ] - }, - "allowedPushOperations": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/allOf/4/definitions/AllowedPushOperations" - } - ] - }, - "alias": { - "type": "string" - } - } - }, - "TreeRuleScope": { - "type": "string", - "description": "", - "x-enumNames": [ - "Ignored", - "SingleItem", - "ItemAndChildren", - "ItemAndDescendants" - ], - "enum": [ - "ignored", - "singleItem", - "itemAndChildren", - "itemAndDescendants" - ] - }, - "FieldFilter": { - "type": "object", - "additionalProperties": false, - "properties": { - "fieldId": { - "type": "string" - }, - "description": { - "type": "string" - } - } - }, - "RolePredicateItem": { - "type": "object", - "additionalProperties": false, - "properties": { - "domain": { - "type": "string" - }, - "pattern": { - "type": "string" - } - } - } - } } ] } \ No newline at end of file diff --git a/examples/helix-basic-aspnetcore/.sitecore/schemas/RootConfigurationFile.schema.json b/examples/helix-basic-aspnetcore/.sitecore/schemas/RootConfigurationFile.schema.json index 3f5a34b7..da70e41e 100644 --- a/examples/helix-basic-aspnetcore/.sitecore/schemas/RootConfigurationFile.schema.json +++ b/examples/helix-basic-aspnetcore/.sitecore/schemas/RootConfigurationFile.schema.json @@ -56,6 +56,11 @@ "description": "Specifies remove orphans functionality for roles serialization", "default": true }, + "continueOnItemFailure": { + "type": "boolean", + "description": "Specifies behavior when item synchronization fails", + "default": false + }, "excludedFields": { "type": "array", "description": "Configure base fields filter", diff --git a/examples/helix-basic-aspnetcore/.sitecore/schemas/UserConfiguration.schema.json b/examples/helix-basic-aspnetcore/.sitecore/schemas/UserConfiguration.schema.json index 9a5692b7..9608e14d 100644 --- a/examples/helix-basic-aspnetcore/.sitecore/schemas/UserConfiguration.schema.json +++ b/examples/helix-basic-aspnetcore/.sitecore/schemas/UserConfiguration.schema.json @@ -72,6 +72,10 @@ "additionalProperties": { "type": "string" } + }, + "insecure": { + "type": "boolean", + "description": "If true, allows cli to use http protocol to communicate with Identity Service Authority. " } } } diff --git a/examples/helix-basic-aspnetcore/docker-compose.override.yml b/examples/helix-basic-aspnetcore/docker-compose.override.yml index 33372f77..cb27d61e 100644 --- a/examples/helix-basic-aspnetcore/docker-compose.override.yml +++ b/examples/helix-basic-aspnetcore/docker-compose.override.yml @@ -64,23 +64,21 @@ services: BASE_IMAGE: ${SITECORE_DOCKER_REGISTRY}sitecore-redis:${SITECORE_VERSION} mssql: - image: ${REGISTRY}${COMPOSE_PROJECT_NAME}-xm1-mssql:${VERSION:-latest} - build: - context: ./docker/build/mssql - args: - BASE_IMAGE: ${SITECORE_DOCKER_REGISTRY}sitecore-xm1-mssql:${SITECORE_VERSION} - HEADLESS_SERVICES_IMAGE: ${SITECORE_MODULE_REGISTRY}sitecore-headless-services-xm1-assets:${HEADLESS_SERVICES_VERSION} - mem_limit: 2GB volumes: - ${LOCAL_DATA_PATH}\mssql:c:\data + + mssql-init: + image: ${REGISTRY}${COMPOSE_PROJECT_NAME}-xm1-mssql-init:${VERSION:-latest} + build: + context: ./docker/build/mssql-init + args: + PARENT_IMAGE: ${SITECORE_DOCKER_REGISTRY}sitecore-xm1-mssql-init:${SITECORE_VERSION} + HEADLESS_SERVICES_IMAGE: ${HEADLESS_SERVICES_IMAGE} - # Mount our Solr data folder. solr: volumes: - ${LOCAL_DATA_PATH}\solr:c:\data - # Mount our Solr data folder and use our retagged Solr image. - # Some modules (like SXA) also require additions to the Solr image. solr-init: image: ${REGISTRY}${COMPOSE_PROJECT_NAME}-xm1-solr-init:${VERSION:-latest} build: @@ -89,11 +87,11 @@ services: BASE_IMAGE: ${SITECORE_DOCKER_REGISTRY}sitecore-xm1-solr-init:${SITECORE_VERSION} id: - image: ${REGISTRY}${COMPOSE_PROJECT_NAME}-id:${VERSION:-latest} + image: ${REGISTRY}${COMPOSE_PROJECT_NAME}-id6:${VERSION:-latest} build: context: ./docker/build/id args: - BASE_IMAGE: ${SITECORE_DOCKER_REGISTRY}sitecore-id:${SITECORE_VERSION} + BASE_IMAGE: ${SITECORE_DOCKER_REGISTRY}sitecore-id6:${SITECORE_VERSION} volumes: - ${HOST_LICENSE_FOLDER}:C:\license environment: @@ -116,8 +114,9 @@ services: - ${HOST_LICENSE_FOLDER}:C:\license environment: SITECORE_LICENSE_LOCATION: C:\license\license.xml - ## Development Environment Optimizations + RENDERING_HOST_PUBLIC_URI: "https://${RENDERING_HOST}" SITECORE_DEVELOPMENT_PATCHES: DevEnvOn,CustomErrorsOff,DebugOn,DiagnosticsOff,InitMessagesOff + Sitecore_AppSettings_exmEnabled:define: "no" entrypoint: powershell -Command "& C:\tools\entrypoints\iis\Development.ps1" cm: diff --git a/examples/helix-basic-aspnetcore/docker-compose.yml b/examples/helix-basic-aspnetcore/docker-compose.yml index 552cc17a..909996a4 100644 --- a/examples/helix-basic-aspnetcore/docker-compose.yml +++ b/examples/helix-basic-aspnetcore/docker-compose.yml @@ -1,5 +1,7 @@ version: "2.4" + services: + traefik: isolation: ${TRAEFIK_ISOLATION} image: ${TRAEFIK_IMAGE} @@ -10,6 +12,7 @@ services: - "--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" @@ -27,12 +30,13 @@ services: condition: service_healthy cm: condition: service_healthy + redis: isolation: ${ISOLATION} - image: ${SITECORE_DOCKER_REGISTRY}sitecore-redis:${SITECORE_VERSION} + mssql: isolation: ${ISOLATION} - image: ${SITECORE_DOCKER_REGISTRY}sitecore-xm1-mssql:${SITECORE_VERSION} + image: ${SITECORE_DOCKER_REGISTRY}nonproduction/mssql-developer:2017-${SITECORE_VERSION} environment: SA_PASSWORD: ${SQL_SA_PASSWORD} SITECORE_ADMIN_PASSWORD: ${SITECORE_ADMIN_PASSWORD} @@ -43,9 +47,27 @@ services: - type: bind source: .\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} + 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.4.0-${SITECORE_VERSION} + image: ${SITECORE_DOCKER_REGISTRY}nonproduction/solr:8.8.2-${SITECORE_VERSION} ports: - "8984:8983" volumes: @@ -54,6 +76,9 @@ services: target: c:\data environment: SOLR_MODE: solrcloud + 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} @@ -63,11 +88,12 @@ services: depends_on: solr: condition: service_healthy + id: isolation: ${ISOLATION} - image: ${SITECORE_DOCKER_REGISTRY}sitecore-id:${SITECORE_VERSION} + image: ${SITECORE_DOCKER_REGISTRY}sitecore-id6:${SITECORE_VERSION} environment: - Sitecore_Sitecore__IdentityServer__SitecoreMemberShipOptions__ConnectionString: Data Source=mssql;Initial Catalog=Sitecore.Core;User ID=sa;Password=${SQL_SA_PASSWORD} + Sitecore_Sitecore__IdentityServer__SitecoreMemberShipOptions__ConnectionString: Data Source=${SQL_SERVER};Initial Catalog=Sitecore.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} @@ -76,16 +102,17 @@ services: Sitecore_Sitecore__IdentityServer__CertificateRawDataPassword: ${SITECORE_ID_CERTIFICATE_PASSWORD} Sitecore_License: ${SITECORE_LICENSE} healthcheck: - test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"] + test: ["CMD", "pwsh", "-command", "C:/Healthchecks/Healthcheck.ps1"] timeout: 300s depends_on: - mssql: + 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} @@ -98,9 +125,9 @@ services: condition: service_started environment: Sitecore_AppSettings_instanceNameMode:define: default - Sitecore_ConnectionStrings_Security: Data Source=mssql;Initial Catalog=Sitecore.Core;User ID=sa;Password=${SQL_SA_PASSWORD} - Sitecore_ConnectionStrings_Web: Data Source=mssql;Initial Catalog=Sitecore.Web;User ID=sa;Password=${SQL_SA_PASSWORD} - Sitecore_ConnectionStrings_ExperienceForms: Data Source=mssql;Initial Catalog=Sitecore.ExperienceForms;User ID=sa;Password=${SQL_SA_PASSWORD} + Sitecore_ConnectionStrings_Security: Data Source=${SQL_SERVER};Initial Catalog=Sitecore.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD} + Sitecore_ConnectionStrings_Web: Data Source=${SQL_SERVER};Initial Catalog=Sitecore.Web;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD} + Sitecore_ConnectionStrings_ExperienceForms: Data Source=${SQL_SERVER};Initial Catalog=Sitecore.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} @@ -114,6 +141,7 @@ services: - "traefik.http.routers.cd-secure.entrypoints=websecure" - "traefik.http.routers.cd-secure.rule=Host(`${CD_HOST}`)" - "traefik.http.routers.cd-secure.tls=true" + cm: isolation: ${ISOLATION} image: ${SITECORE_DOCKER_REGISTRY}sitecore-xm1-cm:${SITECORE_VERSION} @@ -126,11 +154,11 @@ services: condition: service_started environment: Sitecore_AppSettings_instanceNameMode:define: default - Sitecore_ConnectionStrings_Core: Data Source=mssql;Initial Catalog=Sitecore.Core;User ID=sa;Password=${SQL_SA_PASSWORD} - Sitecore_ConnectionStrings_Security: Data Source=mssql;Initial Catalog=Sitecore.Core;User ID=sa;Password=${SQL_SA_PASSWORD} - Sitecore_ConnectionStrings_Master: Data Source=mssql;Initial Catalog=Sitecore.Master;User ID=sa;Password=${SQL_SA_PASSWORD} - Sitecore_ConnectionStrings_Web: Data Source=mssql;Initial Catalog=Sitecore.Web;User ID=sa;Password=${SQL_SA_PASSWORD} - Sitecore_ConnectionStrings_ExperienceForms: Data Source=mssql;Initial Catalog=Sitecore.ExperienceForms;User ID=sa;Password=${SQL_SA_PASSWORD} + Sitecore_ConnectionStrings_Core: Data Source=${SQL_SERVER};Initial Catalog=Sitecore.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD} + Sitecore_ConnectionStrings_Security: Data Source=${SQL_SERVER};Initial Catalog=Sitecore.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD} + Sitecore_ConnectionStrings_Master: Data Source=${SQL_SERVER};Initial Catalog=Sitecore.Master;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD} + Sitecore_ConnectionStrings_Web: Data Source=${SQL_SERVER};Initial Catalog=Sitecore.Web;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD} + Sitecore_ConnectionStrings_ExperienceForms: Data Source=${SQL_SERVER};Initial Catalog=Sitecore.ExperienceForms;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD} Sitecore_ConnectionStrings_Solr.Search: http://solr:8983/solr;solrCloud=true Sitecore_ConnectionStrings_Sitecoreidentity.secret: ${SITECORE_IDSECRET} Sitecore_AppSettings_Telerik.AsyncUpload.ConfigurationEncryptionKey: ${TELERIK_ENCRYPTION_KEY} @@ -154,3 +182,4 @@ services: - "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" + \ No newline at end of file diff --git a/examples/helix-basic-aspnetcore/docker/build/mssql-init/Dockerfile b/examples/helix-basic-aspnetcore/docker/build/mssql-init/Dockerfile new file mode 100644 index 00000000..88557653 --- /dev/null +++ b/examples/helix-basic-aspnetcore/docker/build/mssql-init/Dockerfile @@ -0,0 +1,11 @@ +# escape=` + +ARG PARENT_IMAGE +ARG HEADLESS_SERVICES_IMAGE + +FROM ${HEADLESS_SERVICES_IMAGE} AS headless_services +FROM ${PARENT_IMAGE} + + +# Copy and init the JSS / Headless Services Module +COPY --from=headless_services C:\module\db C:\resources\jss \ No newline at end of file diff --git a/examples/helix-basic-aspnetcore/sitecore.json b/examples/helix-basic-aspnetcore/sitecore.json index e48957fc..8682ba6a 100644 --- a/examples/helix-basic-aspnetcore/sitecore.json +++ b/examples/helix-basic-aspnetcore/sitecore.json @@ -4,15 +4,16 @@ "src/*/*/*.module.json" ], "plugins": [ - "Sitecore.DevEx.Extensibility.Serialization@4.0.0", - "Sitecore.DevEx.Extensibility.Publishing@4.0.0", - "Sitecore.DevEx.Extensibility.Indexing@4.0.0", - "Sitecore.DevEx.Extensibility.ResourcePackage@4.0.0" + "Sitecore.DevEx.Extensibility.Indexing@4.1.0", + "Sitecore.DevEx.Extensibility.ResourcePackage@4.1.0", + "Sitecore.DevEx.Extensibility.Serialization@4.1.1", + "Sitecore.DevEx.Extensibility.Publishing@4.1.1" ], "serialization": { "defaultMaxRelativeItemPathLength": 100, "defaultModuleRelativeSerializationPath": "items", "removeOrphansForRoles": true, + "continueOnItemFailure": false, "excludedFields": [] } } \ No newline at end of file