x-environment: &shopware environment: APP_ENV: "${APP_ENV}" DATABASE_URL: "${DATABASE_URL}" DATABASE_HOST: "${DATABASE_HOST}" APP_URL: "${APP_URL}" APP_SECRET: "${APP_SECRET}" JWT_PRIVATE_KEY: "${JWT_PRIVATE_KEY}" JWT_PUBLIC_KEY: "${JWT_PUBLIC_KEY}" PHP_SESSION_HANDLER: "${PHP_SESSION_HANDLER}" PHP_SESSION_SAVE_PATH: "${PHP_SESSION_SAVE_PATH}" volumes: - files:/var/www/html/files - theme:/var/www/html/public/theme - media:/var/www/html/public/media - thumbnail:/var/www/html/public/thumbnail - sitemap:/var/www/html/public/sitemap services: web: image: shopware6 <<: *shopware build: context: . depends_on: init: condition: service_completed_successfully environment: SERVICE_URL_WEB_8000: APP_ENV: "${APP_ENV:-prod}" DATABASE_URL: "${DATABASE_URL:-mysql://shopware:shopware@database/shopware}" DATABASE_HOST: "${DATABASE_HOST:-database}" APP_URL: "${APP_URL:-$SERVICE_URL_WEB}" APP_SECRET: "${APP_SECRET:-b15bed7d8d3ccecf7b13fb0822f4fc6d}" JWT_PRIVATE_KEY: "${JWT_PRIVATE_KEY:-LS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQpNSUlGSERCT0Jna3Foa2lHOXcwQkJRMHdRVEFwQmdrcWhraUc5dzBCQlF3d0hBUUlFOE5rWmE0ck1PVUNBZ2dBCk1Bd0dDQ3FHU0liM0RRSUpCUUF3RkFZSUtvWklodmNOQXdjRUNQeHVabVIrWWV6QUJJSUV5QVVPM0pBcjV5K0QKTDRvTzRGM0JlL1Z1Slp5QlRPRFdQcU1BNzZ2SUF4K3lDUmZBTVIxRWw4MlNwRUdiSUZVSTA0VTRqUERTeER6aAoxd2dkemQyZHJSMjl2UCtKdjl3ekhjbDBib3g1dnd0ZmFxdEdFcjg0UnQ5aTl5aHpINkJ3MnZMQ21NQVNac0pPCjVrNEdERnhSTDhudWxTVXZtcjA1RUNnVEdQMndraXMzRThtRTU0Q3UrSlpLVzFwN0lkcmdJd3BSSWwwNUhLWVAKSFRGbGJaNURpb3dFelF3Qm42K25TbE40OUJneE1ZM1cxdkhrWTRDaVdZNUJTOENYcHoweGRvNnBzSTRuZ2dpLwpId2xBTVpDVGQvdFZnMW5VMkdRcGNRTkpPZm1TSW0xcWlNeGpSbE5iV2tIbmMvMkwya3AveWs5cFo4aTIwTFhrCnYxZHVHNUZvclRsL1JyNnE0SWtBV1FNbUZUcDdNanpzbmozMDB3SkcwTDREUDFXQTN4VVNKbDQ2SlRVZU9IcncKbEJxZ2xZQ0tPaFVWMFRmdW9scGNrYjcwQXduZm9wSXV0eXpuS0FJYjRFMUJXY25mN3U0K0VrME5pbEdlbXdodQorWmlSaDZGakptM3ROQ0VBWFhVbGVVRVV2eUFpK1VqQXlUMXh0VFFURTdaaXpoa3JBSHlFbHEvR0ZFQ0JOOHVlCjFSV05IYW5zbEl5RnlySk5XcGw3S0lFM09NMnZTbERaRkx3cUVIbkZnYTZza05pZEVtTW1EL2o1Ny9kMkJNeDAKWFVJRXNadFY4S2Q5aDJ0eFdwR0Y4MEZqNHF0cDVud0s3ajd4MUtxa1cwM041aGtrZVZzSm5DRko2U3ZnS0x1ZAp2ZnV3bjVoc3NBZlhLK0tQU1NJYlNaMSs4V0c3dm5MbDVqZ0NuMUVuVHBLVDFPNGRoMXBRVE1hR0EvU0FyVFJxCldTcUZqbFZkbjdaNEVnckVuN0p4bTQxNGptenJCMVBFNUhrYVZnWWs2S3ByNk8yWW9TVDUvSlJhU1ZQVHpJeGYKNit6R09ONk5NMXdzbHRXQk5zUUxWc3NoWHNVVXlzeWtCZXN0b0RWRGtYdE1ZS1dmdlorVFRndzlQUVNzQVU5cQo4dlZvMXZNNXpIV1VuWVhlZitJbmJHcEdpOEJ4cmlKMkVhNFN3YjBUWEJITngvZDR1U281c2dXVXFvcVRRTENsCjNNS1Q3aWpGRFZJQ3VkelI2elU4cDJhbWdjU3RBQlAwbWpsQ2ZrckhtRGFOdExYdEJ0ZWJVK0VPYzVFSHRTTlkKZ0lWSStORUl1bjlRVllaYm1RbGRhU3lhTGpkWi92cndhdWcvV1FmZjVuS2NnanhOd2N4Nlc4UXNyajBOWFVmUgpWTGQ4NzZPRDdnT3hRVElMdGF1cW5DYkxDcWlLN2YrUWRuM0M3ekhuL2t2SEdZWVIvcTZXOWF6MVZ2NC9YMDRqCjFLRDVZazRWa2ZEVVZEdjZIVXRZR2ZJeCt3SWllS1NKMFhRbnh5MGJPb0FrbGRyRkxmazhCL1lEVlRaZ3ZoMzEKSUF6VzV2WXczaVM3ZTZ1a0RYNEdoYldEQVg4cDJ0VmRyUGZiWklLMC9zSlFwOUMxbU1uMDI4d3VFUm1vOURHeQpPNnNHN1phdjhJKytkMktrcWYvbzMzU2VIYVVCN2dvRlZtaS9jSGprQngzVVplQ1ByNDRvNENZTjg1RzdJSWFFCmxVa2NqNmFwN2lZUXFOOFVXMC9Rb1NoUXVxK1NZdnRjRWNXY0VUYlBCOElPZXUxa1BvTExPYzdPQ3ZRMlBqcXoKSkpWUGdIRWZJYzVJWldWMXg0MUplMXZWYmM1dGlhNUY2eFB3cWNteDJROEhMOWJiUDc5NHJUU3I5NkZBTnJXbwowMjZaV1VHMlNxbHZWTll4WjkzUWxka2pSaGM2Nm5obEFrdHBlYnJ4N05JQXgxaFhsRHpDaDRvOTF2M3pFUXZtClFQbUVodHZUNTZDZWNaTGprWTdaNVNteTgvbkJPUUdidS9HSjRlcnZqL0M1dzJ2ZlZlL3AzcGo2K3lXeldtZkoKTm5ZL09mMkVlYmlhMmpIcVlpdHlwWEtZSWREclErZVVJQzI2VG1LRkRXKzBMcndOc0gwRFBWOTFWQm5Bd0pQZwpBTnEwdVBGMUlkSUszcjdUMGp2L1RnPT0KLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0K}" JWT_PUBLIC_KEY: "${JWT_PUBLIC_KEY:-LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF1NWR5RTFPSzc3V3ZJUnIxcWd5MQpUbjJ3ZVFNREhxSHZqV0JGeE1XbEV6eW14YmpVZzYyT1hpL01SditCRnp0a2JCTVQ3aWtpOHdPdXlJZFBCTVBHCmkrcm15anhIT2I0WEJXdTAyNTdxOWg0UTJYemdyUVZsYjY5MG04SVRTY2hKUVBCc2Z6NnVIWjd3b1VQYXZXTG4KMldybHNIUmQ0S2wwNnpIdzVNelE2bVlqeDI5L2NINkNrbjNNcXVNQW9qTEE4alJLSGVxQ05OSUh2cnkwRnByUQoyaG5VUDdMZThlbU1FeUJtTzBGeHoyYVdsVEo4d3FmVDdMRUYyNVJOaERoNyswc3JJSC9RcnlpRHhVZnBvZTBpCkNLNUVpZVdHMXloeXhMMUZJU2JTVmIvRGZaWHo3NGYzMWp0VWpEaVJuWjF2U0UxNDNGKzdUaFV3alBra0pYcVEKQlFJREFRQUIKLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg==}" PHP_SESSION_HANDLER: "${PHP_SESSION_HANDLER:-redis}" PHP_SESSION_SAVE_PATH: "${PHP_SESSION_SAVE_PATH:-tcp://cache:6379/1}" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/api/_info/health-check"] interval: 30s timeout: 10s retries: 5 database: image: mariadb:11.4 environment: MARIADB_ROOT_PASSWORD: "${MARIADB_ROOT_PASSWORD:-shopware}" MARIADB_USER: "${MARIADB_USER:-shopware}" MARIADB_PASSWORD: "${MARIADB_PASSWORD:-shopware}" MARIADB_DATABASE: "${MARIADB_DATABASE:-shopware}" tmpfs: - /var/lib/mysql healthcheck: test: ["CMD", "mariadb-admin", "ping", "-h", "localhost", "-pshopware"] timeout: 20s retries: 10 init-perm: image: alpine <<: *shopware command: chown 82:82 /var/www/html/files /var/www/html/public/theme /var/www/html/public/media /var/www/html/public/thumbnail /var/www/html/public/sitemap restart: "no" exclude_from_hc: true init: image: shopware6 <<: *shopware build: context: . entrypoint: ["php", "vendor/bin/shopware-deployment-helper", "run"] restart: "no" exclude_from_hc: true depends_on: database: condition: service_healthy init-perm: condition: service_completed_successfully worker-1: &worker image: shopware6 <<: *shopware build: context: . exclude_from_hc: true volumes_from: - init depends_on: init: condition: service_completed_successfully entrypoint: [ "php", "bin/console", "messenger:consume", "async", "low_priority", "--time-limit=300", "--memory-limit=512M", ] worker-2: *worker scheduled-task: image: shopware6 <<: *shopware build: context: . volumes_from: - init depends_on: init: condition: service_completed_successfully entrypoint: ["php", "bin/console", "scheduled-task:run"] exclude_from_hc: true cache: image: valkey/valkey:latest