mirror of
https://github.com/coollabsio/coolify-examples.git
synced 2026-02-18 21:38:58 +00:00
119 lines
6.2 KiB
YAML
119 lines
6.2 KiB
YAML
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
|