Drupal 8をDockerでデプロイする

待望のDrupal 8のリリースを記念して今日はDockerを使用してインストールする方法を説明します。







まず、簡単に、なぜこれを行うのか、どのような利点があるのか​​:





Drupalを初めて使用する人への短いコメント:経験豊富なDrupalist(私はDrupalで6年間働いています)は、Drupalがパフォーマンスの柔軟性とアーキテクチャの美しさにお金を払わなければならないことを知っています突然です。



さあ、始めましょう。 8つにはredis / memcached(内部キャッシュの保存用)およびニス(リバースプロキシサーバーのキャッシュ用)と統合するための通常のモジュールがないため、それらなしで環境を収集し、Webサーバー(php + apache2)とデータベース(mariadb別名fork mysql)。



デモンストレーションのために、Ubuntu 14.04 x64でDigitalOceanの最小の液滴(VPS)を持ち上げます。



ルートの下のsshを介して仮想マシンに接続します。デモンストレーションを簡単にするために、デフォルトのufwファイアウォールを切り取り、その構成を回避します。



root@drupal8-docker:~# ufw disable Firewall stopped and disabled on system startup
      
      





Dockerをインストールします。



 root@drupal8-docker:~# wget -qO- https://get.docker.com/ | sh
      
      





すべてが正常であることを確認します。



 root@drupal8-docker:~# docker -D info Containers: 0 Images: 0 Server Version: 1.9.1 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs: 0 Dirperm1 Supported: false Execution Driver: native-0.2 Logging Driver: json-file Kernel Version: 3.13.0-68-generic Operating System: Ubuntu 14.04.3 LTS CPUs: 1 Total Memory: 490 MiB Name: drupal8-docker ID: GUMM:PUBZ:VJOF:52B7:ZIEN:UCJC:4QA2:BSP5:UGSW:FGPV:AZY6:ASZD WARNING: No swap limit support
      
      





ここでは、単一のコンテナ、単一のイメージ、Dockerのバージョンなどをまだダウンロードしていないことがわかります。 デフォルトでは、 AUFSファイルシステムが使用されます 。これにより、Dockerはそのイメージのバージョン管理をgitとして使用できます。 つまり イメージを更新する場合、すべてをゼロからダウンロードするのではなく、新しいレイヤーのみがダウンロードされます。



さらに先に進むと、画像をダウンロードする必要があります。 絶対パスを指定しない場合、デフォルトで画像はhub.docker.comで検索され、 公式のmariadb画像をダウンロードします。 タグ(バージョン)を指定しないため、最新のタグが使用されます。



 root@drupal8-docker:~# docker pull mariadb
      
      





出力では、イメージのすべてのレイヤー(バージョン)がどのようにダウンロードされるかがわかります。



docker pull



次に、必要なタグを示すDrupal公式画像をダウンロードします。 イメージの組み立て元であるDockerfileによると、イメージはApacheを使用した公式のphp 5.6イメージの基礎として使用され、gd、pdo、opcacheなどの追加のライブラリとphp拡張機能がインストールされます。 次に、推奨されるopcache設定がインストールされ、Drupal自体がダウンロードされます。



 root@drupal8-docker:~# docker pull drupal:8.0.0
      
      





Dockerイメージのリストを確認します。



 root@drupal8-docker:~# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE drupal 8.0.0 ddddc055c2c2 5 days ago 570.9 MB mariadb latest b8ba0befc716 6 days ago 302.1 MB
      
      





どちらのイメージもAPTパッケージシステムを使用してDebian Jessieで構築されているため、非常に多くの重さがあります。



これで、mariadbを使用してコンテナを起動し、キーv(--volume)を使用して、データベースデータが保存されるホストノードからマウントされたパーティションを作成するようにドッカーに指示します。新しいmariadb更新を適用するために必要になります)。 コマンドの実行に応じて、実行中のコンテナーのハッシュ(識別子)が表示されます。



 root@drupal8-docker:~# docker run -e MYSQL_ROOT_PASSWORD=admin -e MYSQL_DATABASE=drupal8 -e MYSQL_USER=drupal8 -e MYSQL_PASSWORD=drupal8 -v mariadb:/var/lib/mysql -d --name mariadb mariadb 5a288bef768a000a28c0e482b8424007c606e8d0967703099f967ff6617ceb34
      
      





次に、新しく起動されたmariadbへのリンクとDrupalを起動し、ポート80でバインドします。 リンクは、インストール中にdockerによって作成された仮想ネットワーク内のmariadbを含むコンテナーのIPを指す/ etc / hostsのエントリです。



 docker run --name drupal8 --link mariadb:mysql -p 80:80 -d drupal:8.0.0
      
      





docker psを見て、両方のコンテナーが実行されていることを確認します。



docker ps



ブラウザでIPアドレスに移動し、Drupalインストーラーを確認します。



drupal 8 installation



インストールに問題はないはずです。データベース設定ページで、この名前のlocalhostの代わりにlocalhostの代わりにmysqlを指定する必要があるだけです。この名前のバインディングを作成しました。



drupal 8 installation



やった! 新しくインストールしたDrupalをお楽しみください。



drupal 8 installation







All Articles