skilld-labs / sdc
Project template for Drupal 9 projects with composer
Installs: 11
Dependents: 0
Suggesters: 0
Security: 0
Stars: 20
Watchers: 24
Forks: 32
Open Issues: 35
Language:Makefile
Type:project
pkg:composer/skilld-labs/sdc
Requires
- ckeditor/panelbutton: ^4.10
- composer/installers: ^1.2
- cweagans/composer-patches: ^1.6.5
- drupal-composer/drupal-scaffold: ^2.5
- drupal/admin_toolbar: ^1
- drupal/components: ^1
- drupal/config_installer: ^1
- drupal/core: ^8.6.7
- drupal/default_content: ^1
- drupal/file_entity: ^2
- drupal/panelbutton: ^1
- drupal/styleguide: ^1
- drupal/swiftmailer: ^1
- drupal/token: ^1
- webflo/drupal-finder: ^1.1
- webmozart/path-util: ^2.3
- wikimedia/composer-merge-plugin: ^1.4
- zaporylie/composer-drupal-optimizations: ^1.0
Conflicts
- dev-master
- v1.0.rc
- v1.0.beta
- dev-otel
- dev-main
- dev-414-add-0pen-social-to-sdc
- dev-k3
- dev-341-auto-set-shm-size
- dev-add-solr-dependancy-commented
- dev-fix_tag_pipelines
- dev-fix_upgrade_status_errors
- dev-upgrade_status_3
- dev-bower_assets
- dev-redis_setup_improvements
- dev-composer_cache2
- dev-storybook_deploy_stage_update
- dev-front_cache
- dev-add_essential_modules
- dev-gitlab-actions
This package is auto-updated.
Last update: 2025-10-15 18:03:32 UTC
README
Overview
Skilld docker container is a developer starterkit for your Drupal project.
What is this?
- This is a developer starterkit which can be used for local drupal development or/and integration into your CI/CD processes.
What is this not?
- This is not ready to use tool, tools list you can find in this google doc
- Another quick solution https://gist.github.com/andypost/f8e359f2e80cb7d4737350189f009646
Quickstart
- 
Install docker for Linux, Mac, Windows - Check post-installation steps for Linux version 18.06.0 or later
 
- 
Install Docker Compose V2 version 2.0 or later 
- 
Copy .env.default to .env, more information about enviroment file can be found docs.docker.com 
- 
Copy docker-compose.override.yml.default to docker-compose.override.yml, update parts you want to overwrite. - docker-compose.yml contains the base requirements of a working Drupal site. It should not be updated.
 
- 
Update .gitlab-ci.yml variablessection THEME_PATH to make front gitlab CI works.
- 
Run make all
Used variables
| Variable name | Description | Default value | 
|---|---|---|
| COMPOSE_FILE | Path to a Compose file(s) | ./docker/docker-compose.yml:./docker/docker-compose.override.yml | 
| COMPOSE_PROJECT_NAME | Your project name | - | 
| PROFILE_NAME | Profile used for site install | druxxy | 
| MODULES | Additional modules to enable after site install | project_default_content | 
| THEME_NAME | Name of theme directory in /web/themes | NA | 
| SITE_NAME | Site name | Example | 
| SITE_MAIL | Site e-mail address | admin@example.com | 
| ADMIN_NAME | Admin username | admin | 
| PROJECT_INSTALL | Way to install site - from straight or existing config | - | 
| IMAGE_PHP | Php image to use | skilldlabs/php:83-unit | 
| EXEC_SHELL | Shell to use in PHP-container ( ash/bash) | /bin/ash | 
| PKGMAN | Package manager to use in PHP-container ( apk/apt) | apk | 
| ADDITIONAL_PHP_PACKAGES | Additional php extensions and tools to install | graphicsmagick | 
| IMAGE_NGINX | Image to use for nginx container | skilldlabs/nginx:1.24 | 
| IMAGE_APACHE | Image to use for apache container | skilldlabs/skilld-docker-apache | 
| IMAGE_FRONT | Image to use for front tasks | skilldlabs/frontend:zen | 
| IMAGE_DRIVER | Image to use for automated testing webdriver | zenika/alpine-chrome | 
| MAIN_DOMAIN_NAME | Domain name used for traefik | docker.localhost | 
| DB_URL | Url to connect to database | sqlite:///dev/shm/db.sqlite | 
| DB_DATA_DIR | Full path to database storage | /dev/shm | 
| CLEAR_FRONT_PACKAGES | Set it to noto keep/node_nodulesdirectory in theme aftermake fronttask to save build time. | yes | 
| RA_BASIC_AUTH | username:hashed-password format defining BasicAuth in Traefik. Password hashed using htpasswd -nibB username password!as described here | - | 
Persistent Mysql
- By default sqlite storage used, which is created inside php container, if you need persistent data to be saved:
- Update docker-compose.override.yml, set
 php: depends_on: - mysql and update mysql container partmysql: image: mysql:8.0-oraclelinux8 ... - Update .envfile, and setDB_URL=mysql://db:db@mysql/db
 
- Update 
Network
- Every time project built, it take new available IP address, if you want to have persistent IP, uncomment lines from  docker-compose.override.yml
networks: front: driver: bridge ipam: driver: default config: - subnet: "172.18.0.5"
Usage
- make- Show this info.
- make all- Full project install from the scratch.
- make clean- Totally remove project build folder, files, docker containers and network.
- make si- Install/reinstall site.
- make info- Show project services IP addresses.
- make diff- Show changes in overrides (needs local- diffcommand).
- make exec-- docker execinto php container.
- make exec0-- docker execinto php container as root.
- make dev- Devel + kint setup, and config for Twig debug mode, disable aggregation.
- make drush [command]- execute drush command.
- make phpcs- Check codebase with- phpcssniffers to make sure it conforms https://www.drupal.org/docs/develop/standards.
- make phpcbf- Fix codebase according to Drupal standards https://www.drupal.org/docs/develop/standards.
- make front- Builds frontend tasks.
- make lint- Runs frontend linters.
- make storybook- Runs storybook in current theme.
- make blackfire- Adds and enables blackfire.io php extension, needs configuration in docker-compose.override.yml.
- make newrelic- Adds and enables newrelic.com php extension, needs configuration- NEW_RELIC_LICENSE_KEYenvironment variable defined with valid license key.
- make xdebug (on|off|status)- Enable, disable or report status of Xdebug PHP extension.
Additional goals
- If you need to add your custom/specific project goal, create new file in scripts/makefile/myfile.mkand describe goal inside. Example can be found atscripts/makefile/backup.mk
Support
- This project is supported by © Skilld SAS
Drush commands
- You can run any drush command make drush [command -- -argument]
Troubleshooting
- Use our issue queue, which is public, to search or add new issues.
Git hooks
- Project includes git hooks to perform automatic validation when certain git commands are executed
- You can bypass this validation with option --no-verify
License
This project is licensed under the MIT open source license.