{"id":14968750,"url":"https://github.com/skilld-labs/skilld-docker-container","last_synced_at":"2025-04-09T08:09:10.288Z","repository":{"id":12218406,"uuid":"68751438","full_name":"skilld-labs/skilld-docker-container","owner":"skilld-labs","description":"Starterkit for drupal development","archived":false,"fork":false,"pushed_at":"2025-03-20T17:36:55.000Z","size":1346,"stargazers_count":20,"open_issues_count":35,"forks_count":32,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-04-02T05:09:06.951Z","etag":null,"topics":["docker","docker-compose","drupal","php"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skilld-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-09-20T20:39:07.000Z","updated_at":"2025-03-20T17:37:00.000Z","dependencies_parsed_at":"2023-11-23T11:25:14.072Z","dependency_job_id":"cf534940-c895-4516-ac8e-d62eaf09c5ee","html_url":"https://github.com/skilld-labs/skilld-docker-container","commit_stats":{"total_commits":520,"total_committers":28,"mean_commits":"18.571428571428573","dds":0.573076923076923,"last_synced_commit":"73188ca1ab9bfa55655431258093fcb2951804b5"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skilld-labs%2Fskilld-docker-container","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skilld-labs%2Fskilld-docker-container/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skilld-labs%2Fskilld-docker-container/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skilld-labs%2Fskilld-docker-container/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skilld-labs","download_url":"https://codeload.github.com/skilld-labs/skilld-docker-container/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247999861,"owners_count":21031046,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","drupal","php"],"created_at":"2024-09-24T13:40:29.489Z","updated_at":"2025-04-09T08:09:10.265Z","avatar_url":"https://github.com/skilld-labs.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Skilld docker container\n\n---\n\n- [Skilld docker container](#Skilld-docker-container)\n  - [Overview](#Overview)\n  - [What is this?](#What-is-this)\n  - [What is this not?](#What-is-this-not)\n  - [Quickstart](#Quickstart)\n      - [Used variables](#Used-variables)\n      - [Persistent Mysql](#Persistent-Mysql)\n      - [Network](#Network)\n  - [Usage](#Usage)\n      - [Additional goals](#Additional-goals)\n  - [Support](#Support)\n  - [Drush commands](#Drush-commands)\n  - [Troubleshooting](#Troubleshooting)\n  - [Git hooks](#Git-hooks)\n  - [License](#License)\n\n\n## Overview\n\n**Skilld docker container** is a developer starterkit for your Drupal project.\n\n## What is this?\n\n* This is a developer starterkit which can be used for local drupal development or/and integration into your CI/CD processes.\n\n## What is this not?\n\n* This is not `ready to use tool`, tools list you can find in \u003ca href=\"https://docs.google.com/spreadsheets/d/11LWo_ks9TUoZIYJW0voXwogawohqAbOFv_dcBlAVs2E/edit#gid=0\"\u003ethis google doc\u003c/a\u003e\n* Another quick solution \u003ca href=\"https://gist.github.com/andypost/f8e359f2e80cb7d4737350189f009646\"\u003ehttps://gist.github.com/andypost/f8e359f2e80cb7d4737350189f009646\u003c/a\u003e\n\n\n## Quickstart\n\n* Install docker for \u003ca href=\"https://docs.docker.com/install/\" target=\"_blank\"\u003eLinux\u003c/a\u003e, \u003ca href=\"https://docs.docker.com/docker-for-mac/install/\" target=\"_blank\"\u003eMac\u003c/a\u003e, \u003ca href=\"https://docs.docker.com/docker-for-windows/install/\" target=\"_blank\"\u003eWindows\u003c/a\u003e\n  *  Check \u003ca href=\"https://docs.docker.com/install/linux/linux-postinstall/\" target=\"_blank\"\u003epost-installation steps for Linux\u003c/a\u003e version 18.06.0 or later\n* Install \u003ca href=\"https://docs.docker.com/compose/install/\" target=\"_blank\"\u003eDocker Compose V2\u003c/a\u003e version **2.0** or later\n\n* Copy **.env.default** to **.env**, more information about enviroment file can be found \u003ca href=\"https://docs.docker.com/compose/env-file/\" target=\"_blank\"\u003edocs.docker.com\u003c/a\u003e\n* Copy **docker-compose.override.yml.default** to **docker-compose.override.yml**, update parts you want to overwrite.\n  * **docker-compose.yml** contains the base requirements of a working Drupal site. It should not be updated.\n* Update **.gitlab-ci.yml** `variables` section THEME_PATH to make front gitlab CI works.\n* Run `make all`\n\n\n#### Used variables\n\n| Variable name   | Description             | Default value |\n| --------------- | ----------------------- | ------------- |\n| COMPOSE_FILE   | Path to a Compose file(s) | `./docker/docker-compose.yml:./docker/docker-compose.override.yml` |\n| COMPOSE_PROJECT_NAME   | Your project name | - |\n| PROFILE_NAME   | Profile used for site install | druxxy |\n| MODULES   | Additional modules to enable after site install | project_default_content |\n| THEME_NAME  | Name of theme directory in /web/themes | `NA` |\n| SITE_NAME  | Site name | Example |\n| SITE_MAIL  | Site e-mail address | admin@example.com |\n| ADMIN_NAME  | Admin username | admin |\n| PROJECT_INSTALL | Way to install site - from straight or existing config | - |\n| IMAGE_PHP | Php image to use | `skilldlabs/php:83-unit` |\n| EXEC_SHELL | Shell to use in PHP-container (`ash`/`bash`) | `/bin/ash` |\n| PKGMAN | Package manager to use in PHP-container (`apk`/`apt`) | `apk` |\n| ADDITIONAL_PHP_PACKAGES | Additional php extensions and tools to install | `graphicsmagick` |\n| IMAGE_NGINX | Image to use for nginx container | `skilldlabs/nginx:1.24` |\n| IMAGE_APACHE | Image to use for apache container | `skilldlabs/skilld-docker-apache` |\n| IMAGE_FRONT | Image to use for front tasks | `skilldlabs/frontend:zen` |\n| IMAGE_DRIVER | Image to use for automated testing webdriver | `zenika/alpine-chrome` |\n| MAIN_DOMAIN_NAME | Domain name used for traefik | `docker.localhost` |\n| DB_URL | Url to connect to database | `sqlite:///dev/shm/db.sqlite` |\n| DB_DATA_DIR | Full path to database storage | `/dev/shm` |\n| CLEAR_FRONT_PACKAGES | Set it to `no` to keep `/node_nodules` directory in theme after `make front` task to save build time. | yes |\n| RA_BASIC_AUTH | username:hashed-password format defining BasicAuth in Traefik. Password hashed using `htpasswd -nibB username password!` as [described here](https://doc.traefik.io/traefik/middlewares/basicauth/#general) | - |\n\n#### Persistent Mysql\n\n* By default sqlite storage used, which is created inside php container, if you need persistent data to be saved:\n  * Update `docker-compose.override.yml`, set\n  ```yaml\n  php:\n     depends_on:\n       - mysql\n  ```\n  and update mysql container part\n  ```yaml\n  mysql:\n    image: mysql:8.0-oraclelinux8\n  ...\n  ```\n  * Update `.env` file, and set `DB_URL=mysql://db:db@mysql/db`\n\n#### Network\n\n* Every time project built, it take new available IP address, if you want to have persistent IP, uncomment lines from  `docker-compose.override.yml`\n```yaml\nnetworks:\n  front:\n    driver: bridge\n    ipam:\n      driver: default\n      config:\n        - subnet: \"172.18.0.5\"\n```\n\n## Usage\n\n* `make` - Show this info.\n* `make all` - Full project install from the scratch.\n* `make clean` - Totally remove project build folder, files, docker containers and network.\n* `make si` - Install/reinstall site.\n* `make info` - Show project services IP addresses.\n* `make diff` - Show changes in overrides (needs local `diff` command).\n* `make exec` - `docker exec` into php container.\n* `make exec0` - `docker exec` into php container as root.\n* `make dev` - Devel + kint setup, and config for Twig debug mode, disable aggregation.\n* `make drush [command]` - execute drush command.\n* `make phpcs` - Check codebase with `phpcs` sniffers to make sure it conforms https://www.drupal.org/docs/develop/standards.\n* `make phpcbf` - Fix codebase according to Drupal standards https://www.drupal.org/docs/develop/standards.\n* `make front` - Builds frontend tasks.\n* `make lint` - Runs frontend linters.\n* `make storybook` - Runs storybook in current theme.\n* `make blackfire` - Adds and enables blackfire.io php extension, needs [configuration](https://blackfire.io/docs/configuration/php) in docker-compose.override.yml.\n* `make newrelic` - Adds and enables newrelic.com php extension, needs [configuration](https://docs.newrelic.com/docs/agents/php-agent/getting-started/introduction-new-relic-php#configuration) `NEW_RELIC_LICENSE_KEY` environment variable defined with valid license key.\n* `make xdebug (on|off|status)` - Enable, disable or report status of [Xdebug](https://xdebug.org/docs/) PHP extension.\n\n#### Additional goals\n\n* 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 at \u003ca href=\"scripts/makefile/backup.mk\"\u003e`scripts/makefile/backup.mk`\u003c/a\u003e\n\n## Support\n\n* This project is supported by \u003ca href=\"http://www.skilld.fr\"\u003e© Skilld SAS\u003c/a\u003e\n\n## Drush commands\n\n* You can run any drush command `make drush [command -- -argument]`\n\n## Troubleshooting\n\n* Use our \u003ca href=\"https://github.com/skilld-labs/skilld-docker-container/issues\"\u003eissue queue\u003c/a\u003e, which is public, to search or add new issues.\n\n## Git hooks\n\n* Project includes [git hooks](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) to perform automatic validation when certain git commands are executed\n* You can bypass this validation with option `--no-verify`\n\n## License\n\nThis project is licensed under the MIT open source license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskilld-labs%2Fskilld-docker-container","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskilld-labs%2Fskilld-docker-container","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskilld-labs%2Fskilld-docker-container/lists"}