Skilld docker container is a developer starterkit for your Drupal project.
- This is a developer starterkit which can be used for local drupal development or/and integration into your CI/CD processes.
- 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
- 
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
| 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 | [email protected] | 
| 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 | 
| 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 | 
| ADD_PHP_EXT | Additional php extension to install | - | 
| 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 | - | 
- 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
 and update mysql container partphp: depends_on: - mysql mysql: image: mysql:8.0-oraclelinux8 ... - Update .envfile, and setDB_URL=mysql://db:db@mysql/db
 
- Update 
- 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"- 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.
- 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
- This project is supported by © Skilld SAS
- You can run any drush command make drush [command -- -argument]
- Use our issue queue, which is public, to search or add new issues.
- Project includes git hooks to perform automatic validation when certain git commands are executed
- You can bypass this validation with option --no-verify
This project is licensed under the MIT open source license.