ddev

DevOps ddev 環境

ddevは、オープンソースCMSのWordPress、Drupal、TYPO3、bacldropなどのDevOps環境して開発されています。

詳細は ここから https://www.drud.com/

 

参考書籍

  • ddev+Drupalでの入門書籍(英語) 

Local Web Development With DDEV Explained: Your Step-by-Step Guide to Local Web Development With DDEV

 

Drupal Global Sprint 用のパッケージ

2019年DrupalCon Seattle で使ったSprint用データのダウンロード

https://github.com/drud/quicksprint/releases/tag/v1.0.1

 

ddev インストール

https://ddev.readthedocs.io/en/stable/#installation

 

Drupal 8 Quick Install 

https://ddev.readthedocs.io/en/stable/users/cli-usage/

インストール後の環境

ddev Drupal 8 Quick install

 

Drupal 9.0.0.dev Quick Install 

インストール環境: ubuntu 18.04.4

docker, docker compose, curl などをインストール、docker はsudoコマンドなしで実行できるように設定変更

参考サイト

MacOSでは、DockerとDocker compose がインストールされていれば大丈夫だとおもいます。

quicksprint パッケージのダウンロード

上記のページにある drupal_sprint_package.v1.3.3.tar.gz をダウンロード、自分のホームディレクトリなどへ。

解凍後、

$ cd drupal_sprint_package
$ ./install.sh

インストールが終了し、

$ mkcert -install
$ cd ~/sprint
$ ./start_sprint.sh

Drupal 9.0.0.dev をインストールし完了後、

Use the following URL's to access your site:
Website: http://sprint-20200405-1828.ddev.site:8080/
https://sprint-20200405-1828.ddev.site:8443/
(U:admin P:admin)
Mailhog: http://sprint-20200405-1828.ddev.site:8025/
phpMyAdmin: http://sprint-20200405-1828.ddev.site:8036/
Chat: https://drupal.org/chat to join Drupal Slack or https://drupalchat.me
See Readme.txt for more information.

が表示されればOKです。 この環境は、ブラウザの localhost で稼働します。

ddev はセキュリティのために sudo などを使わない、ホームディレクトリで、PCのLocalhostでしか稼働しません。 Docker環境を別のサーバー環境に移行させればサーバー環境として稼働します。

Docker環境は ~/sprint/sprint-20200405-1828 のようにインストールした時刻でDockerコンテナのディレクトリを作成します。

もし、Drupal 8.8.0環境に変更したい場合は、そのコンテナディレクトリの下にある、./switch_branch.sh を使います。

例えば、 $ ./switch_branch.sh 8.9.x と実行すると、Drupal 9.0.0 から Drupal 8.9.0 へソース環境を入れ替えてくれます。

ddev環境の使い方は、以下の簡単な説明をご覧ください。

hodota@demo2:~/sprint/sprint-20200405-1828$ cat Readme.txt

サイトへにアクセス

Website: http://sprint-[ts].ddev.site:8080/
https://sprint-[ts].ddev.site:8443/
(User:admin Pass:admin)

Mailhog: http://sprint-[ts].ddev.site:8025/
phpMyAdmin: http://sprint-[ts].ddev.site:8036/
Chat: https://drupal.org/chat to join Drupal Slack or drupalchat.eu!

よく使うddevコマンド:

ddev start (-h) [start project]
ddev stop (-h) [stop project, nothing lost]
ddev poweroff [stop all projects and resources, nothing lost]
ddev import-db --src=path to db [import database]
ddev help

ddev オンラインマニュアル https://ddev.readthedocs.io/
サポートは、Stack Overflow: https://stackoverflow.com/tags/ddev

 

Drupalブランチを9.0.xなどに切り替える必要がある場合は、ユーティリティswitch_branch.shを使用してください。 スクリプトは変更を隠しますが変更内容が失われないようにするため、まず自分で変更を保存することをお勧めします。switch_branch.shは既存のデータベースもドロップするため、実行後、手動でWebベースのインストールを行う必要があります。

サンプル:
./switch_branch.sh 9.0.x
./switch_branch.sh 8.8.x

ssh コマンドを使う場合:
コンテナディレクトリの下にdrupalディレクトリがあります。そのディレクトで ddev ssh と実行します。

hodota@demo2:~/sprint/sprint-20200405-1828/drupal$ ddev ssh
hodota@sprint-20200405-1828-web:/var/www/html$ ls
INSTALL.txt autoload.php composer.json core example.gitignore index.php profiles sites update.php web.config
README.txt composer composer.lock drush files modules robots.txt themes vendor

コンテナ環境でのssh 環境では、drush コマンドや composer コマンドが使えます。

ssh環境を抜ける場合は exit です。

ddev 英文マニュアル
https://ddev.readthedocs.io/en/stable/

 

 

FAQ

Q: Debian Stretchでdockerインストール後、sudo 以下外の一般ユーザーでdockerを実行させるとエラー(Got permission denied while trying to connect to the Docker daemon socket......)になる。

A: 一般ユーザーをdockerグループに所属させ、ログアウト、再ログインして確認します。

  Debian Stretch で sudo gpasswd -a ユーザ名 [グループ名 docker] で 追加します。その後、 id ユーザー名 で確認し、ログアウト、再ログイン

 さらに、Docker-Linuxの設定で確認します。

 Manage Docker as a non-root user https://docs.docker.com/install/linux/linux-postinstall/

 To create the docker group and add your user:

Create the docker group.

$ sudo groupadd docker

Add your user to the docker group.

$ sudo usermod -aG docker $USER


Log out and log back in so that your group membership is re-evaluated.

If testing on a virtual machine, it may be necessary to restart the virtual machine for changes to take effect.

On a desktop Linux environment such as X Windows, log out of your session completely and then log back in.

On Linux, you can also run the following command to activate the changes to groups:

$ newgrp docker 


Verify that you can run docker commands without sudo. 

$ docker run hello-world

 

もしくは、以下のサイトで、UbuntuでのDocker、sudoなしなどの設定を確認します。

https://qiita.com/__8oki__/items/cf0414d02b20fe87af83

 

Q: localhostでSSL認証を設定する(mkcert)をDebianにインストールする方法

A: $ sudo apt-get update
  $ sudo apt install libnss3-tools

  最新のmkcertバイナリーパッケージのリリース情報を確認 https://github.com/FiloSottile/mkcert/releases  もし最新版が v.4.1 であれば

  $ export VER="v1.4.1"
      $ wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/${VER}/mkcert-${VER}-linux-amd64

 参考にしたサイト:https://computingforgeeks.com/how-to-create-locally-trusted-ssl-certificates-on-linux-and-macos-with-mkcert/

 ダウンロード後、実行権限のパーミッションを付加して、/usr/local/binへ

 $ chmod +x  mkcert
   $ sudo mv mkcert /usr/local/bin

これで、mkcertコマンドが実行できます。

 

Q: ddevのインストールおよびアップデイトの簡単な方法(スクリプト)

A: $ curl -L https://raw.githubusercontent.com/drud/ddev/master/scripts/install_ddev.sh | bash

 参考にしたサイト: Installation/Upgrade Script - Linux and macOS https://ddev.readthedocs.io/en/stable/#installation

  スクリプトの概要: https://github.com/drud/ddev/blob/master/scripts/install_ddev.sh

 

CMS: