This repository contains a Docker image to run a Shopware 6 environment. It is based on the official Shopware 6 Docker image and adds some demo data to the database.
To start the Shopware 6 environment, run the following command:
docker run \
--rm \
# External reachable URL, aka sales channel URL in shopware
-e APP_URL=http://localhost:8000 \
-p 8000:8000 \
ghcr.io/friendsofshopware/shopware-demo-environment:6.5.8
See here for all available images
You can additionall set SHOPWARE_ADMIN_PASSWORD
to set an different admin password.
To install Shopware 6 extensions you will need to set the EXTENSIONS
environment variable. This variable should be a space separated list of composer packages. For example:
docker run \
--rm \
-e APP_URL=http://localhost:8000 \
-e EXTENSIONS="frosh/tools" \
-p 8000:8000 \
ghcr.io/friendsofshopware/shopware-demo-environment:6.5.8
For Shopware Store plugins, you need to pass the SHOPWARE_PACKAGIST_TOKEN
environment variable generated from a Wildcard environment.
Example:
docker run \
--rm \
-e APP_URL=http://localhost:8000 \
-e EXTENSIONS="store.shopware.com/froshtools store.shopware.com/froshplatformsharebasket" \
-e SHOPWARE_PACKAGIST_TOKEN=your-token \
-p 8000:8000 \
ghcr.io/friendsofshopware/shopware-demo-environment:6.5.8
If you want to run multiple containers, you should deploy a Traefik before the containers. This will allow you to access the containers via different subdomains.
See as example the compose.yml
file
You can inject a fixture.php
to /var/www/html
to run custom commands on the Shopware DI container to poupulate the database with custom data.
Example:
docker run \
--rm \
-e APP_URL=http://localhost:8000 \
-e EXTENSIONS="frosh/tools" \
-v $(pwd)/fixture.php:/var/www/html/fixture.php \
-p 8000:8000 \
ghcr.io/friendsofshopware/shopware-demo-environment:6.5.8
<?php
$kernel = require '/opt/shopware/boot.php';
var_dump($kernel->getContainer()->get('product.repository')->getDefinition()->getEntityName());
and this script is executed on any container start, so you can use it to populate the database with custom data. All DI services are available in this script.
Thanks to namespace.so for sponsoring their fast Docker builder with multi arch support. Checkout namespace.so if you need better GitHub runners or Docker remote builders.