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 |
| 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 no to keep /node_nodules directory in theme after make front task 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 localdiffcommand).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 withphpcssniffers 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 configurationNEW_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.