自分流

なんちゃってエンジニアによる自分用メモ

お題で開発

環境構築【お題で開発:2】

投稿日:2019年10月17日 更新日:

前回設計が終了したので、開発していき・・・たいところですが。

開発環境をきちんと準備しておかないと、のちのち死にます。

昔であれば、XAMPPやLAMPP、MAMPでテスト環境を開発機に直に構築していましたが、最近は仮想で構築するのが主流なようです。

確かに複数の開発をしたい場合、開発機に直接環境を構築するとバージョンの管理が大変だったりしますよね。

というわけで、Dockerを使用します。

 

冗長な内容が続きますが、短気な方はまとめをご覧ください。

 

本プロジェクトは第一弾かつ練習ということで、公開してみるをゴールにしました

 

構築

 

今回の構築環境です

ホスト

Mac 10.14

Docker Desktop 2.0.3

仮想サーバ

Nginx 1.17

PHP 7.2

MySQL 5.7

 

では環境構築していきましょう。

 

作業ディレクトのファイル構成

ちなみに↑のツリーはtreeコマンドで作成しました。

treeコマンドの導入については以下のURLを参考にさせていただきました。

https://tech.qookie.jp/posts/info-tree-cmd-mac/

 

 

docker-compose.yml

nginx, php, mysql, phpmyadminのコンテナを用意しています。

 

各種コンテナの内容を説明します。

 

各種コンテナの解説

Nginxコンテナ

docker-compose.ymlの一部抜粋

  • nginxの最新のイメージを使用する
  • 8080ポートでホストから接続できるようにする
  • コンテナ内の/var/wwwを /wwwにマウント
  • phpコンテナ起動後に起動する
  • etc/nginx/conf.d/default.confに↓のconfファイルを配置
nginx.conf

これも特段何もしていません。

普通のnginxのphp向けの設定ですね。

ホストの/wwwフォルダがドキュメントルートと紐づいているので、/wwwに各種コンテンツを置くことになります。

 

PHPコンテナ

docker-compose.ymlの一部抜粋

  • ./phpフォルダを使用してコンテナを作成する
  • コンテナ内の/var/wwwを /wwwにマウント
  • dbコンテナ起動後に起動する
Dockerfile

  • php7.2のfpmのイメージ使用
  • php.iniをコンテナに配置
  • mysqlのpdoモジュールのインストール
  • 作業ディレクトリの指定

以上!

 

MySQLのコンテナ

docker-compose.ymlの一部抜粋

  • MySQL5.7のイメージ使用
  • 外部ポート13306を内部ポート3306とマッピング
  • コンテナ内の/var/lib/mysqlを /mysql/dataにマウント
  • rootのパスワードをrootに設定

簡潔ですね

 

PHPMyAdminコンテナ

docker-compose.ymlの一部抜粋

  • phpmyadminの最新イメージ使用
  • 外部ポート8888を内部ポート80とマッピング
  • dbコンテナ起動後に起動する

 

いざ起動!!

作業フォルダにてDocker起動コマンドを実行して各コンテナを立ち上げる

このようにコンテナがdoneって立ち上がったら

ブラウザでhttp://localhost:8080にアクセス

みんな大好きHelloWorldが表示されたらOK

 

PHPMyAdminも確認しておきましょう

ブラウザでhttp://localhost:8888にアクセス

user:root
pass:root

でログインできればOK

 

コンテナ停止は作業フォルダで以下のコマンド

 

 

まとめ

仮想環境の構築も楽になりましたね。

開発マシンを汚さないですむのでおすすめです!

一回作っておけば何かと流用できるしね♪

 

今回構築した環境は以下の通り

動作環境

ブラウザアクセス

https://localhost:8080 – ルート

https://localhost:8888 – phpmyadmin

MySQL(PHPMyAdmin)

user:root
pass:root

作業フォルダ

ホストの /www をドキュメントルートにマウント
/wwwがコンテンツ置き場となる


 

次回からようやく開発に入ります!

今後ソース等はgithubに置きますので、何かしら参考になれば幸いです。

https://github.com/j1kazy/themedev-twitter-from-scratch

記事ごとにブランチを作り、最新はmasterで管理します。

-お題で開発
-, , , ,


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

お題で開発はじめました 【お題で開発:0】

最近Twitterをはじめました!かじです。こんにちは。   定期的に新しい環境を学びたくなる僕は、入門書を一通り読んで満足してしまうのですが、正直身になっていないのでその先を常々悩んでいま …

まずは設計【お題で開発:1】

お題が決まりました!   何かしらの投稿サービス 期間一ヶ月   と言うわけで作っていくんですが、 いきなりプログラムを書き出すと漂流してしまうので道しるべを書きます。 開発の前段 …

ログイン機能の実装【お題で開発:4】

前回ユーザーの新規登録を作りました。 今回は登録したユーザーでのログインを作ります。     もはやどんなサービスでも存在するログイン機能。 今更説明するまでもない機能ですが、どう …

ユーザーの新規登録機能の実装【お題で開発:3】

前回環境構築も済み、意気揚々と開発! あんまり頭の中で構築できておらず、 不安しかありませんがハマりながら作っていきます。 やればなんとかなるでしょうし、やらなければなんともならないですからね。 &n …

ツイート詳細・コメント機能の実装【お題で開発:8】

前回ツイート一覧機能を作りました。 今回はツイート詳細・コメント機能を作っていきます。   以前作ったツイート機能の実装と同じように作っていきます。       …

Top