- Determine the container name separator character by checking the Docker Compose API version at runtime
- Add
config/general.php
settings forrequireMatchingUserAgentForSession
&rememberedUserSessionDuration
(#10) - Add Elements Panel plugin (#11)
- Clean up initial check for
composer.lock
orvendor/autoload.php
to ensure the first-time install is done
- Ensure that the mysql/mysql-server image can pick from the ARM64 architecture by using
latest
tag
- Added
config/custom.php
for custom config settings
- Changed
bootstrap.php
to allow.env
-set environment variables override existing injected environment variables (#82)
- Run migrations first via
composer.json
scripts, because Craft won't apply Project Config if there are pending migrations - Added
tty: true
back in now that the issue has been fixed in the Docker Compose API2.4.1
(#9348) - Wait for both
vendor/autoload.php
as we ascomposer.lock
before starting up the queue listener
- Add
disableProcessTimeout
to thepost-craft-update
Composer scripts, and run Project Config before migrations
- Fix
php-dev-craft
Docker image regression by addingWORKDIR
back in
- Ensure permissions on directories Craft needs to write to
- Added more logging to indicate when a container is waiting for another service to start up, and when seeding a database is complete
- Run
composer craft-update
after acomposer install
is done viacomposer_install.sh
- Moved permissions setting to Docker image creation
- Dramatically sped up the startup time for the PHP containers by moving the permissions setting script to run asynchronously in the queue container via the
run_queue.sh
script - Added Codeception via the
make codecept
command via PR (#7)
- Added empty
test
databases for local testing
- Fixed the SiteModule to work properly on Craft 4, removing the additional logging code, as it is not needed. The Craft logger handles it properly as long as
CRAFT_STREAM_LOG=true
- Add a stream logging target for
stderr
so that we can capture thrown exceptions or other errors that would normally be captured only to a specific log file likequeue.log
- Wait until the
composer install
is done by looking for thevendor/autoload.php
file in thequeue
container
- Run migrations / project config changes via the
run_queue.sh
script, only after both db containers respond
- Significantly increased startup times via a
composer_install.sh
script that only runscomposer install
at container startup time ifcomposer.lock
orvendor/
is missing
- Expose ports
33060
for MySQL and port54320
on the host side, to avoid conflicts with other local development environments - Added a
sleep 60
in therun_queue.sh
containers, so they don't run the "keepalive" script until the other containers have started
- Restart the
queue
container after switching betweenmysql
andpostgres
so the queue runner process picks up the new database settings
- Adjust
spaceless
from the root template for easier debugging - Comment out non-Craft specific Rector settings in
rector.php
, for the initial pass - Add Craft Commerce
4.0.0-beta.1
tocms_v4
- Update to Craft CMS
4.0.0-beta.2
- Updated Project Config files for
craft_v3
&craft_v4
- Updated database seeds for
craft_v3
&craft_v4
- Updated for Craft CMS
4.0.0-beta.1
- Add updated Project Config files for
craft_v3
- Added a dual Craft CMS 3 & Craft CMS 4 setup
- Add new
make ssh
command to open up a shell inside the PHP container (#4)
- fix: Go back to using dashes & the Docker Composer v2 API ref
- Use
su-exec www-data
in the Makefile socraft
andcomposer
commands are not run as root
- Fix Composer 2.2.0 error by adding
allow-plugins
- Updated to use a unified
bootstrap.php
- Updated to use
vlucas/phpdotenv
^5.4.0
- Fixed a regression where the Postgres db seed was in
.zip
format, when it should have been in.gz
format to work with the containerentrypoint.sh
(#3)
- Updated the
Makefile
to accommodate another change in Docker that switches back to using_
instead of-
in container names
- Use
tty: true
for nicer output in terminal from the PHP Docker containers
- Move Craft Autocomplete to
require-dev
- Updated the
Makefile
to accommodate the change in Docker to using-
instead of_
in container names
- Add
CRAFT_ALLOW_SUPERUSER
&COMPOSER_ALLOW_SUPERUSER
.env
variables (#2)
- Added
enableGraphqlCaching
setting, defaulting to0
(false) - Added iCalender and Vite plugins to the
composer.json
- Added
compiled_templates
as a bind mount indocker-compose.yaml
for IDE autocompletion - Added
nystudio107/craft-autocomplete
for autocomplete of variables in Twig templates
- Handle both
XDEBUG_SESSION
andXDEBUG_PROFILE
cookies - Added
make nuke
to the Makefile commands to restart from scratch
- Updated the baseline Craft vMS version to
craftcms/cms
^3.7.0
- Removed
putyourlightson/craft-autocomplete
- Added
putyourlightson/craft-autocomplete
for the Twig + Symfony plugin auto-complete, removed FauxTwigExtension.php
- Continue running the
php-fpm
containers as root (sincephp-fpm
uses worker pools with the proper user/group), but switch tosu-exec
to ensure any craft CLI commands are run aswww-data
- Fixed typo in Dockerfile that would cause the PHP container to not build
- Removed
USER
directive in the PHP containers, since the pool runs aswww-data
already - Fix permissions regression
- Cleaned up the
php-dev-craft
&php-prod-craft
Dockerfile file permissions
- Run php container as the
www-data
user to avoid permissions issues
- Added
VITE_PLUGIN_DEVSERVER
environment variable
- Added
logs
andcompiled_templates
directories back in so that they will appear on the client side
- Explicitly designate the
rebrand
mount
- Delegate all of
storage
&cpresources
volumes, let the container own it
- Use the
mysql/mysql-server:8.0
Docker image because the "official" image doesn't support M1 Apple Silicon
- Don't
.gz
compress themysql-db-seed
database seed, because the entrypoint.sh script doesn't support it ref - Silence errors from the root
post-create-project-cmd
script - Don't remove the
README.md
file
- Bring the debug container in line with the production container, allowing it to work with either Postgres or MySQL
- Use separate
phpSessionName
s for MySQL and Postgres, to keep us logged in when switching between them
- Added
make craft
to the Makefile commands
- Use
rm -f
to ensure no errors if the file doesn’t exist
- Added
make update
to update Composer packages - Added
make update-clean
to completely removevendor/
, then update Composer packages
- Better login background pattern
- Fixed the rebrand by adding a bind mount for
storage/rebrand/
in thedocker-compose.yaml
- Add rebrand logo & icon, updated login background
- Updated database seed with entry types & category group
- Fixed
make up
command by removing an errant$
- Added
make clean
to the Makefile - Added Makefile Project Commands to
README.md
- Added
make composer xxx
- runs thecomposer
command passed in, e.g.make composer install
- Added
name
&description
to rootcomposer.json
- Added a
Makefile
for command aliases - Added
make mysql
andmake postgres
for switching between databases
- Add
craftcms/redactor
to the base config - Add
craftcms/commerce
to the base config - Added
soap
PHP extension for Commerce - Multiple sites for testing
- Prefab content with a "blog" channel for testing
- Set
useEmailAsUsername
tofalse
inconfig/general.php
so we can use the generic loginadmin
- Remove
errorTemplatePrefix
and remove theerrors/
templates completely, because, who cares?
- Added Redactor plugin installed by default
- Installed more NYS plugins by default
- Updated seed dbs & Project Config
- Added a default
SITE_NAME
inexample.env
- Updated the seed dbs and Project Config files to no longer include licenses
- Updated
README.md
project creation instructions
- Default to using MySQL
- Updated
README.md
to be more useful
- Remove
require
dependencies - Cleaned up
README.md
- Removed
sitemodule
fromcomposer.json
- Put Craft dependencies back into the project
- Added postgres container
- Dynamic switching between mysql and postgres by just changing a line in
db.php
- Switch to Craft CMS 3.6.7 as a starting base
- Switch to MySQL 8.x
- Initial release
Brought to you by nystudio107