web学習日記

プログラミングやweb関係を学んだことを呟くブログ

DocckerでCakePHPとphpMyAdminのローカル開発環境を整える

f:id:nana205:20190614012146p:plain

はじめに

今までAWSCloud9でローカル開発環境をやっていたのですが、実際の開発現場ではそもそもCloud9を使っていないこともあり、Dockerでの勉強もかねて構築しようと思いました。 今回はCakePHPphpMyAdminの導入部分までやってみます。
Dockerの詳細は別で書くので今回はDockerででのように環境を構築するのかだけ書きます。

内容

1,Dockerのインストール

2, DockerComposeのインストール

3, 初期設定

4,実行立ち上げ

5,所感

※ dockerインストール,dockercomposeの手順はここでは省きますので下記を参考にやってみてください。
CakePHPのymlファイルと一緒にphpMyAdminを記述していますが、うまくいかない場合は先にCakePHPをインストールしてから phpAdminファイルを記述してください。

Dockerのインストール

Macの方

qiita.com


Ubuntuの方

qiita.com


Windowsの方

docs.docker.jp


DockerComposeのインストール


qiita.com


初期設定

まずはこちらのリポジトリをクローンします。
git clone https://github.com/km42428/docker-cakephp3-template.git

そうしたら適当な場所にフォルダを作成し、そこにdocker-compose.ymlファイルを作成します。

version: '2'
services:
  mysql:
    restart: always
    build: ./data/mysql/
    volumes:
      - "./data/mysql/db:/var/lib/mysql"
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_USER: my_app
      MYSQL_PASSWORD: secret
      MYSQL_DATABASE: my_app
      TZ: "Asia/Tokyo"
    ports:
      - "3307:3306" 
phpmyadmin:
  image: phpmyadmin/phpmyadmin
  environment:
    - PMA_ARBITRARY=1
    - PMA_HOST=mysql
    - PMA_USER=root
    - PMA_PASSWORD=password
  links:
    - mysql
  ports:
     - 8080:80
  volumes:
      - "./phpmyadmin/sessions:/sessions"
  nginx:
    restart: always
    image: "nginx:mainline-alpine"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "./data/nginx/conf:/etc/nginx/"
      - "./data/htdocs:/var/www/html"
    environment:
      TZ: "Asia/Tokyo"
    depends_on:
      - phpfpm
    links:
      - phpfpm
  phpfpm:
    restart: always
    build: ./data/phpfpm/
    environment:
      TZ: "Asia/Tokyo"
    volumes:
      - "./data/htdocs:/var/www/html"
    depends_on:
      - mysql
    links:
      - mysql
  host:
    build: ./data/htdocs
    environment:
      TZ: "Asia/Tokyo"
      PRJ: "sample"
    volumes:
      - "./data/htdocs:/root"
    ports:
      - "8765:80"
    depends_on:
      - mysql
      - phpfpm
    links:
      - mysql
      - phpfpm

書いたらビルドします。

$ docker-compose build

正常にできていれば以下のイメージができます。

$ docker images
REPOSITORY                        TAG                 IMAGE ID            CREATED              SIZE
docker-cakephp3-template_host      latest              2a706bb934fa        44 seconds ago       465MB
docker-cakephp3-template_phpfpm    latest              b5019579816a        About a minute ago   114MB
docker-cakephp3-template_mysql     latest              e2f4e50d4453        2 minutes ago        372MB

次にコンテナを立ち上げます。

$ docker-compose up -d

コンテナに入ります。

$ docker exec -it  {コンテナID}/bin/sh

var/www/html直下にきたらあとはいつも通り、コンポーザーとCakePHPのプロジェクトをインストールします。

/var/www/html # curl -s https://getcomposer.org/installer | php

/var/www/html # php composer.phar create-project --prefer-dist cakephp/app  hogehoge

コンテナを抜けます。

/var/www/html # exit

次にCakePHPのプロジェクトに入ってconfig/app.phpを編集します。

`host`=>`loalhost`, ←mysql

実行環境の立ち上げ

$ docker-compose up -d

正常に実行されればローカル環境で確認できます。
CakePHPの初期画面 http://loaalhost:8765 phpMyAdminの画面 http://localhost:8080

実行終了コマンド

$docker-compose down

所感

初めてDockerでの環境構築をしたけど、思った以上に簡単にできました。 githubやdockerhubに既ににあるものを落とすだけなので、vagrantvirtualBoxで一つ一つソフトウェアをインストールするよりも楽にできました! まだ学んでいる身ですが、Dockerをどんどん使っていきます!!

引用

qiita.com

qiita.com