magento-docker
magento-docker copied to clipboard
Docker setup is not supporting project specific theme development
Describe the bug Current docker setup is tailored for core development and is not working correctly with project specific theme development.
To Reproduce
Create custom theme through cli command, e.g. MyCompany/pwa, and update configuration files (.env, webpack)
-
the first issue is deployment procedure in
deploy/start.sh. Function contains code that redeploys base theme from scratch every time, it fails if files are present and don't delete them, but it still contains hard coded values and is executed on every start up. -
the second issue is that theme path is hard coded in multiple places and is not prone to be changed easily.
deploy/local/envdeploy/start.shdocker-compose.frontend.yml -
after adjusting config and docker files to work with project specific theme, webpack scss compilation fails,
src/app/design/frontend/PROJECT/pwa/src/config/webpack.development.config.jsprojectRoot has to changed with fallbackRoot. -
after importing sample data, migrations fail:
app_1 | Module 'ScandiPWA_Installer':
app_1 | Module 'Scandiweb_Core':
app_1 | Module 'ScandiPWA_Migrations':
app_1 | Caught exception: The stock item was unable to be saved. Please try again.
app_1 | Rolled back transaction has not been completed correctly.
Expected behavior docker containers should be able to handle project specific theme development.
Most of the settings/variables are intended to be changed depending on your setup, but templating for settings can be added along with docs.
@eli-l might have additional thoughts
@Danpiel there is lack of settings and variables, currently many values are just hard-coded and repetitive, in this current example: the base path for theme- hence the referenced files in ticket. Changing settings and variables does not work fully, you still have to edit and tinker with other files which use the same values, but they are not using settings or variables, and on top of that you have to disable demo project deployment specific routines, which in my opinion shouldn't even be in core since they are demo not core specific. Such modifications can make updates from scandipwa-base harder, since there will be conflicts.
So, conclusion:
- We make
build/frontend/start.shanddeploy/start.shrespect new ENV variable i.e.SCANDIPWA_THEME, it value could beScandiweb/pwa, we define it in.env - We edit
THEMEPATHandSTATIC_ASSET_PATHto respect new variable - We make
webpack.development.config.jsusefsto get it's theme name
@yeegor please update the ticket status upon completion, reference changes, if possible :)