Git Product home page Git Product logo

ddev-gitpod's Introduction

Gitpod ready-to-code

ddev + Gitpod

Set up a full Drupal dev environment in a browser

This project demonstrates a complete Drupal 9 development environment, utilizing ddev and Gitpod, through your browser.

Video Demo

Watch a 5 minutes walkthrough video:

Setup a full Drupal dev environment in a browser

Prerequisites:

  1. Sign up for gitpod.io

Try it out:

  1. Click on the following link https://gitpod.io/#https://github.com/shaal/ddev-gitpod
  2. Your environment is being prepared, wait about 40 seconds (A splash screen will appear)
  3. VScode IDE will be displayed, a few seconds later you will see Umami demo.
  4. Run in terminal ddev xdebug on
  5. Open VScode's debugger, place a new breakpoint in web/index.php
  6. Open your website's URL in a browser.
  7. ๐ŸŽ‰

Do you like PhpStorm instead of Theia or VScode?

  1. Open a bash window at the bottom
  2. .ddev/run-phpstorm.sh

How does it work?

  1. Gitpod - development environment based on Docker
    1. .gitpod.yml
      1. Defines the main docker image this environment is built on - .gitpod.Dockerfile
      2. Run prebuild commands:
        1. Start ddev
        2. Run composer install
        3. Install Umami demo website
    2. .gitpod.Dockerfile
      1. Set base image to Gitpod's workspace-full (link)
      2. Install ddev using brew
  2. ddev - ridiculously simple setup for complex development environments, allows developers working locally or working with Gitpod in the cloud.
    1. .ddev/config.yaml - main ddev (default) configuration, can be generated by running ddev config

Thank you

@rfay for your endless patience and relentless support that made this project possible.

Persistent Storage:

  • Gitpod backs up the state of the /workspace/ folder between workspace starts, so that you can revisit them later. Attention: Files in other locations will not be saved!
  • Additional Storage Solutions

ddev-gitpod's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ddev-gitpod's Issues

ddev-gitpod should not expose all ports equally

When you start up a project with ddev-gitpod, you get a bunch of ports exposed, and additional_fqdns for each of them. And of course they're not all equal. Some of for PHPMyAdmin or mailhog, which are rarely used. but they're all there in the startup string equally, for example:

Project can be reached at https://ddev-gitpod.ddev.site:8443 https://8025-chocolate-donkey-ypicpjv8.ws-us03.gitpod.io:8443 https://8036-chocolate-donkey-ypicpjv8.ws-us03.gitpod.io:8443 https://8080-chocolate-donkey-ypicpjv8.ws-us03.gitpod.io:8443 https://127.0.0.1:32771

You see there that the useful URL is the next-to-last one, https://8080-chocolate-donkey-ypicpjv8.ws-us03.gitpod.io:8443

I think probably we'll have to add some gitpod functionality to ddev itself to work around this. It may be that since (all?) the router features of ddev-router are being done by gitpod's termination that we should just not use ddev-router in the context of gitpod.

"no space left on device"

I used this repo to spin up a fresh Drupal 9 site on Gitpod, and it worked fine for a little bit, but then I received the following error while trying to rebuild caches:

$ ddev drush cr
Adding custom commands failed: mkdir /workspace/ddev-gitpod/.ddev/.global_commands: no space left on device

While searching this project's issue queue and poking around a few other places, I didn't run any additional commands in the Gitpod terminal for 5-10 minutes. Then, on a whim, I retried the same command and it worked. I then rebuilt caches a few times, installed a module using Composer, then enabled it using Drush, followed by loading a bunch of pages in the browser - all with no issues.

It appears that the "no space left on device" error was temporary, but I have no idea why. Could it be that Gitpod autoresizes things on-the-fly?

-mike

Old DDEV version

I just spun this up and noticed that it's using an older version of DDEV.

gitpod /workspace/ddev-gitpod $ ddev --version
ddev version v1.17.7

I see that you pull in DDEV via brew in /.gitpod.Dockerfile

RUN brew update && brew install drud/ddev/ddev && mkcert -install

I tried updating DDEV via brew but it thinks it's the latest.

gitpod /workspace/ddev-gitpod $ brew upgrade ddev
Warning: drud/ddev/ddev 1.17.7 already installed

DDEV 1.18.0 was release on the 2021-09-28 (24 days ago) so something is not getting updated. Any thoughts?

Add some tags for GitHub search

Please, add some tags and topics for GitHub search to make this project available on GitHub search.
Some keywords like DDEV, gitpod, Drupal etc would really help it.
Thank you for the video also!

New repository for drupal contributions ddev-gitpod

  • Separate repository for installing via git clone rather than composer create-project
  • shaal: quick restore of database
  • shaal; self-managed gitlab login / authentication security concerns for pushing to issue forks

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.