Este post documenta como instalar Shopware 6 con el orquestador de docker Reward.
Reward esta inspirado en Warden pero me parece un poco mas flexible para lo que suelo necesitar en mi estación local para el desarrollo con PHP, Magento 2, Shopware o WordPress.
Si estas interesado en conocer mas sobre Reward o como instalarlo la documentación es bastante clara.
Para crear un host usando Reward es imprescindible haberlo levantado, si no lo tenemos corriendo lo hacemos con:
reward svc up
Creamos el directorio para el proyecto y entramos en el:
mkdir ~/www/testshopware
cd ~/www/testshopware
Inicializamos el proyecto:
reward env-init testshopware --environment-type=shopware
Creamos el certificado para poder trabajar con HTTPS
reward sign-certificate testshopware.test
Cambiamos el directorio raiz a donde se apunta el dominio por “webroot”:
sed -i.old -e 's#^REWARD_WEB_ROOT.*#REWARD_WEB_ROOT=/webroot#' .env
Clonamos la plantilla “Production” en el web root donde estará nuestro proyecto:
git clone https://github.com/shopware/production.git ~/www/testshopware/webroot
NOTA: El orquestador “Reward” (y “Warden” también) crean un archivo “.env” en el directorio del proyecto, como Shopware 6 también requiere de un archivo “.env” con variables de entorno necesitamos que nuestro código este en una sub carpeta del proyecto. En este caso “webroot”
Iniciamos los contenedores del proyecto Reward:
reward env up
Ingresamos al contenedor de la aplicación:
reward shell
Cambiamos la versión de composer a 2:
sudo alternatives --set composer /usr/bin/composer2
NOTA: por defecto la versión de Reward con la que estoy trabajando instala para el proyecto de tipo “Shopware” composer 1.x pero necesitamos la versión 2.
Instalamos las dependencias con composer:
composer install
Creamos un archivo “.env” con la variable de entorno “APP_URL” setada con el dominio local de nuestro proyecto.
echo 'APP_URL="https://testshopware.test"' >> .env
Corremos el setup con el parámetro “–force” para, mediante el wizard, setear las otras variables de entorno en el archivo “.env”
bin/console system:setup --force
Para el “host” de la base de datos usar “mysql” en lugar de “localhost” y “app” como password.
El ultimo paso es correr el instalador:
bin/console system:install --create-database --basic-setup
Si todo salio bien tendremos
Front end: https://testshopware.test
Backend : https://testshopware.test/admin/
Usuario: admin
Password: shopware
Salimos del contenedor con :
exit
Si necesitamos detener el proyecto
reward env stop
Y si queremos reiniciarlo
reward env start
Para este ejemplo se ha utilizado:
Ubuntu 20.04, Docker 20.10, Reward 0.2.0-beta, Shopware 6.4
Reward: https://rewardenv.readthedocs.io/en/latest/index.html
Shpware 6: https://www.shopware.com