Have you ever had to set up and/or maintain a local development environment using Docker that mirrors your production environment as much as possible? Setting-up and supporting such a docker-based local environment is no easy feat! Common problems include performance issues, broken dependencies, broken relationships between your services and uncontrolled updates of your docker images, among many other issues.
So, the question is, what can we do about that?
DDEV: The simplest way to integrate containers on top of Docker
DDEV is an open-source tool that simplifies integrating the power and consistency of containerization into your workflows. With DDEV you can launch local development environments in minutes!
DDEV is built on top of Docker, but fear not - it doesn’t demand any specific experience or knowledge of Docker to get going. In addition, it does not require the use of the closed-source Docker Desktop either (Colima can be used instead). Plus, DDEV circumvents the common performance issues that developers encounter when working on macOS and Windows with Docker while ensuring you still get all of the benefits. Yay Mutagen!
In fact, Platform.sh has been proudly sponsoring the DDEV open-source project for more than 6 months now and this is just the beginning. At Platform.sh, we ❤️ open-source!
DDEV + Platform.sh = The best local development experience
Sponsorship just wasn’t enough for us when it comes to DDEV. In the pursuit of providing the best Platform.sh local development experience possible, allow me to introduce you to the DDEV-platform.sh add-on. The goal of this add-on is to provide a rich integration between your checked-out Platform.sh project and DDEV.
It includes:
- Automated DDEV configuration based on your Platform.sh YAML configuration files:
.platform.app.yaml
andservices.yaml
- Hassle-free integration of your remote database and files: just use
ddev pull platform
- Easily access the relevant
$PLATFORM_*
environment variables, including$PLATFORM_RELATIONSHIPS
and$PLATFORM_ROUTES
- Support of build and deploy hooks as configured in your
.platform.app.yaml
file
This add-on is already extremely valuable but the work is not quite complete. Here are some of the known limitations:
- It only supports PHP applications. There is an ongoing discussion to be able to support other languages such as Python and NodeJS
- Platform.sh multi-apps setup is not supported yet
- Routes defined in
.platform.routes.yaml
are not parsed yet - Only supports the following platform.sh services:
- Single database only: MariaDB, Oracle MySQL, PostgreSQL
- Redis
- Memcached
- ElasticSearch
How to install the DDEV add-on
To improve your local development experience with Platform.sh & DDEV, you need to ensure that you have the most recent version of DDEV (v1.21+). Then, assuming that your project is already configured for Platform.sh:
- Run
ddev config
, and answer the interactive questions - Get the add-on:
ddev get drud/ddev-platformsh
, and answer the interactive questions - Run
ddev start
And that’s it! You are all set - go and enjoy your fantastic, new local development experience.
Help improve DDEV & Platform.sh with your feedback!
We really love and value Open-Source Software and gaining an understanding of how our solution is working for you and your team. The best way to do that is to share your feedback with us via the add-on Github repository and don’t forget, if you encounter any issues, you can always report them in there too. All feedback and/or contribution is welcome!