Giter Club home page Giter Club logo

drupal-for-kubernetes's Introduction

Drupal Example Site for Kubernetes

CI

The purpose of this Drupal codebase is to demonstrate a Drupal project and configuration set up for deployment into Kubernetes or an otherwise scalable containerized environment.

The project is used in tandem with the Raspberry Pi Dramble, an open source Kubernetes cluster tailor made for Drupal meant to run on a cluster of Raspberry Pis.

Documentation

Please read through the project documentation for details about how this project was created, how it's structured for easy development and deployment into production container environments, and how you can create your own Drupal project like it.

Local setup

  1. Build the site's docker image from the Dockerfile:

    docker build -t geerlingguy/drupal-for-kubernetes .
    
  2. Run the local development environment:

    docker-compose up -d
    

    (Wait for the environment to come up—you can monitor the logs with docker-compose logs -f).

  3. Once the container is running, install Dependencies and install Drupal. You can either access http://localhost/ and install using the UI, or install via Drush:

    # Install dependencies.
    docker-compose exec drupal composer install
    
    # Install Drupal.
    docker-compose exec drupal bash -c 'drush site:install minimal --db-url="mysql://drupal:$DRUPAL_DATABASE_PASSWORD@$DRUPAL_DATABASE_HOST/drupal" --site-name="Drupal Example Site for Kubernetes" --existing-config -y'
    
  4. Visit http://localhost/ in your browser, and login as admin using the password Drush printed in the 'Installation complete' message.

Note: If you have PHP and Composer installed on your host computer, you can run the composer install command there instead of through the Docker container for a bit of a speedup. Also note that if you're using Docker for Mac or Windows, it can take a couple minutes after composer install completes for all the filesystem changes to be present inside the Docker container!

Managing Configuration

After making any configuration changes on the website, you can export the configuration to disk so it can be preserved in the codebase and deployed to the production site:

docker-compose exec drupal bash -c 'drush config:export -y'

For more on the way this project's configuration changes are handled, and the general site development process, see the project documentation.

Exporting Content

After making any content changes on the website, you can export the changes to disk so it is preserved in the codebase and installable on the production site:

docker-compose exec drupal bash -c 'drush dcer --folder=modules/custom/pidramble_default_content/content/ node 1'

For more on the way this project's content changes are handled, see the pidramble_default_content README.

License

MIT license.

Author Information

Created in 2019 by Jeff Geerling, author of Ansible for DevOps and Ansible for Kubernetes.

drupal-for-kubernetes's People

Contributors

geerlingguy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.