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
variables
section 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 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
.env
file, 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 localdiff
command).make exec
-docker exec
into php container.make exec0
-docker exec
into 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 withphpcs
sniffers 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_KEY
environment 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.mk
and 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.