How to install Shopware 6 using Dockware Essentials image

How to install Shopware 6 using Dockware Essentials image
Use it. Love it. Proof of getting Shopware 6 running on Dockware Essentials image.

Should be easy-breazy, right? Never!

I started with high hopes when getting Shopware 6 up and running locally with Dockware play-image was as easy as making a cup of coffee. What I soon realized though was that I was terribly wrong.

I was trying to install Shopware 6.5.6.0 on Dockware Essentials image.

If you are just looking for an quick answer, here comes: Shopware 6.5.6.0 does not work with Essentials -image. Use something else like 6.4.2.0 for example.

I did not try this with earlier 6.5 releases.

Php bin/console system:install does not make database migrations

Running $php bin/console system:install <options>   should make the database migrations (build the database) but with 6.5.6.0 it did not do that. If I understand right, the migrate Migrations __ <1 sec 40,5MiB referes to the size of migration to make. However for the unknown reason it did not.

Error messages after install command. Look at the migrate Migrations 

As seen from the image above, the errors clearly states what is wrong - The database is not what it should be.

Working installation process

This is how I got Shopware 6.4.20.2 installed with Dockware Essentials image:

  • Start the image using docker compose up -d in a folder where your docker-compose.yml is located (see mine below)
  • Get into the container
  • Navigate to /var/www/html and remove public folder
  • Download 6.4.20.2 from here using wget for example.
  • Unzip the folder (so that the files are placed to the root of /var/www/html
  • Run composer install command
  • Run  php bin/console system:setup and fill in asked questions. Credentials are root/root
  • Run `php bin/console system:install --create-database <other options>`
version: "3"

services:
    shopware:
      environment:
        - PHP_VERSION=8.1
        - NODE_VERSION=18.18.0
      image: dockware/essentials:latest
      container_name: shopware
      ports:
         - "8888:80"
      volumes:
        - ./html:/var/www/html
        - db_volume:/var/lib/mysql

      networks:
         - web
volumes:
  html:
    name: html
  db_volume:
    driver: local
networks:
  web:
    external: false

After this, you are not ready though. You can go into adminer (localhost:8080/adminer.php) for example, but for example admin will not work. Yet.

Installing admin and other assets

I was a bit suprised when I noticed that the install process did not actually install the frontend stuff. To get into Shopware admin, you need to run two more commands:

  • Install & build frontend scripts
  • Create admin user

Install & build frontend stuff

Its a bit weird that this was not documented anywhere:

Run composer setup command. This builds all the frontend assets into public/bundles folder.

Create admin user

Admin user needs to be created to access the Shopware 6 admin. Luckily, this is very easy to do by running yet another command:

php bin/console user:create -a -p <your password> --firstName <your firstname> --lastName <your lastname> --email <your email> <username>

Tips, tricks and thoughts

  • I think all of this could be done using the .phar installer. I tried it once while figuring all this out but it did not work so I kept on the manual path.
  • Make sure to mount database volume in docker-compose.yml to persist the data. If you don't do that, database has to be created again on the next run. See: https://docs.dockware.io/tips-and-tricks/persisting-data
  • I got very frustrated trying to figure this all out as the documentation lacked many key points and how the current latest Shopware 6 version was not compatible with the Essentials image.

I wrote an issue to Dockware github: https://github.com/dockware/dockware/issues/195

Privacy Policy