laradockで簡単Laravel開発環境構築

1ヶ月に1回のPostが聞いて呆れるくらい何もしませんでした。

が、先程Qiitaに投稿したので、同じものを投稿するというお手軽な方法で新投稿しておきます。

今回はlaradockでLaravel環境を構築してみます。

homesteadは以前使っていたのですが、laradockなんてのがあったのを最近知りました。

せっかくなんで試してみます。

開発環境

OS X Yosemite 10.10.5

事前準備

必要なもの

作業用ディレクトリ作成

$ mkdir sample-project
$ cd sample-project

laravelのダウンロード

$ composer create-project laravel/laravel project

構築

公式のとおりに作ってみます。

1. laradockダウンロード

$ git clone https://github.com/Laradock/laradock.git
$ cd laradock

2. dotenvファイル作成

$ cp env-example .env

設定を変更したい場合は作成した .env ファイルを修正しましょう。

今回はアプリケーションパスと、MySQL・Nginxの設定を変更するようにしてみます。

アプリケーションパスの変更

### Application Path
# Point to your application code, will be available at `/var/www`.

APPLICATION=../project

MySQLの設定変更

### MYSQL ##############################################################################################################

MYSQL_VERSION=5.7
MYSQL_DATABASE=sample_database
MYSQL_USER=sample_user
MYSQL_PASSWORD=sample_password_12345

Nginxの設定変更

NGINX_HOST_HTTP_PORT=8888

ローカルで確認したい場合は↑の情報を変えないと接続確認できません。

3. docker-compose実行

では、公式に書いてある nginx mysql redis beanstalkd を起動してみます。

ついでに確認のため phpmyadminも起動しておきます。

$ docker-compose up -d nginx mysql redis beanstalkd phpmyadmin

↑を実行すると、パラパラとダウンロードしてビルドしてと頑張ってやってくれます。

終了したら、きちんと起動しているか確認してみましょう。

$ docker-compose ps
         Name                        Command               State                      Ports                    
--------------------------------------------------------------------------------------------------------------
laradock_applications_1   /true                            Exit 0                                              
laradock_beanstalkd_1     /usr/bin/beanstalkd              Up       0.0.0.0:11300->11300/tcp                   
laradock_mysql_1          docker-entrypoint.sh mysqld      Up       0.0.0.0:3306->3306/tcp                     
laradock_nginx_1          nginx                            Up       0.0.0.0:443->443/tcp, 0.0.0.0:8888->80/tcp 
laradock_php-fpm_1        docker-php-entrypoint php-fpm    Up       9000/tcp                                   
laradock_phpmyadmin_1     /run.sh phpmyadmin               Up       0.0.0.0:8080->80/tcp                       
laradock_redis_1          docker-entrypoint.sh redis ...   Up       0.0.0.0:6379->6379/tcp                     
laradock_workspace_1      /sbin/my_init                    Up       0.0.0.0:2222->22/tcp                    

無事起動してますね。

4. laravel側の設定

dotenvファイルの修正

接続を確立するため、MySQL、Redis、Beanstalkdの設定をlaradockで設定したものに合わせましょう。

DB_HOST=laradock_mysql_1
DB_DATABASE=sample_database
DB_USERNAME=sample_user
DB_PASSWORD= sample_password_12345

REDIS_HOST=laradock_redis_1

QUEUE_DRIVER=beanstalkd
QUEUE_HOST=laradock_beanstalkd_1

接続確認

nginx確認

http://localhost:8888にアクセスしてみましょう。

f:id:kojirooooocks:20170727164624p:plain

問題なくアクセスできてます。

Mysql確認

接続設定が正しければmigrateコマンドを実行して、successfully になるはずです。

$ docker exec -it laradock_workspace_1 php artisan migrate
Migration table created successfully.
Migrated: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_100000_create_password_resets_table

早速phpmyadminで確認してみます。

f:id:kojirooooocks:20170727164636p:plain

migrationで実行されたテーブルが作成されています。

Redis確認

phpmyadmin的な便利なものはlaradockにはないようなので、泥臭く確認してみます。

laravel公式を参考にしながらやっていきます。

1. predisをインストー

$ docker exec -it laradock_workspace_1 composer require predis/predis

2. config/database.php を修正

redis の項目に以下を追記します。

'client' => 'predis',

3. app/Http/routes.php を修正

以下を追加します。

// Setテスト 
Route::get('/redis_test/set', function() {
    $result = Illuminate\Support\Facades\Redis::set("test", "redisの接続テストです。");
    dd($result);
});

// Getテスト
Route::get('/redis_test/get', function() {
    $result = Illuminate\Support\Facades\Redis::get("test");
    dd($result);
});

4. Setできるかのテスト

http://localhost:8888/redis_test/set に接続します。

接続が問題なければ以下のような表示になります。

f:id:kojirooooocks:20170727164728p:plain

5. Getできるかのテスト

http://localhost:8888/redis_test/get に接続します。

接続が問題なければ以下のような表示になります。

f:id:kojirooooocks:20170727164735p:plain

単純なSet/Getですが、問題なくできることを確認できました。

Beanstalkd確認

こちらもRedis同様、公式ドキュメントを見ながら泥臭く確認してみます。

1. 依存パッケージのインストー

$ docker exec -it laradock_workspace_1 composer require pda/pheanstalk

2. config/queue.phpを修正

connections => beanstalkd => host の値を以下に修正します。

'host' => env('QUEUE_HOST', 'localhost'),

3. Jobクラスを作成

$ docker exec -it laradock_workspace_1 php artisan make:job Test

4. app/Http/routes.php を修正

以下を追加します。

// QueueSetテスト
Route::get('/queue_test/set', function() {
    $result = dispatch(new App\Jobs\Test());
    dd($result);
});

5. listen状態にして監視

以下のコマンドでqueue監視状態にしておく

$ docker exec -it laradock_workspace_1 php artisan queue:listen

6. ブラウザで接続

http://localhost:8888/queue_test/set に接続します。

接続が問題なければ以下のような表示になります。

f:id:kojirooooocks:20170727164739p:plain

監視しているターミナル上にも以下のような表示が現れていると思います。

$ docker exec -it laradock_workspace_1 php artisan queue:listen
[2017-07-27 16:29:34] Processed: App\Jobs\Test

これですべての確認ができました。

やってみた感想

homesteadと同じく、簡単に開発環境を構築することが出来ました。

predisやpheanstalkなど使用するコンテナで依存しているパッケージも一緒にインストールできれば嬉しいですね。

というか僕がやり方知らないだけかもしれないので、もし知っていれば教えてください。

という、Qiita投稿まんまコピーで終わらせました。

次の投稿はなんとか8月中にやってみたいとおもいます。

期待している人はいないだろうけど、期待しないで待っててください。

アイデア大全読んだ

お久しぶりです。

1ヶ月1Postとか言ってて早速破りました。

持続力がない俺はダメだなー。。。

もっと持続力つけないと。

今日は、久しぶりに本を読んだので、かんたんな感想書こうかなと思いました。

読んだのは以下。

こういった本読むの初めてだったんだけど、よくよく考えたら自分てアイデア生み出すの苦手だなと思ってたので勉強になればと思い読みました。

0から1を生み出す方法や、1から複数に膨らます方法など、いろんなアイデアを生み出す技術を紹介してくれる内容でした。

「え?普段からやってたこれって、こういう名前ついてたの?」っていう、知らない間に普段から使っている技術や、結構オカルトチックな技術まで色々ありました。

個人的に、エンジニアの業務で使えるかも!と思った技術としては、

  • ケプナー・トリゴーの状況把握
  • ケプナー・トリゴーの問題分析

ですね。

ケプナー・トリゴーすげーな。

難しいバグや、環境に依存したバグが発生すると、今考えると無駄なんですが、総当りで調べたりしていたので、こういった技術を頭に入れておくことで、状況把握・問題分析・解決まで最短でいけるのかな?と思いました。

あと、おもしろいなーと思ったのは、ノンストップライティングって言う技術。

本の内容書くのはちょっとあれだから、詳しい方法は書かないけど、自分が気になったところは以下の内容。

最強で逃れることのできない批判者は自分の中にいる。
その最強不可避な批判者から、僅かな時間だけだが逃れる方法がある。
それがノンストップライティングだ。

ってとこです。

新しいアイデアが出てきても、「ありきたりなアイデアだなー」とか「全然おもしろくないなー」とか、自分で生み出したアイデアを自分自身で否定して、結果何も生み出せなくなってることってあると思います。

そういった負の連鎖を断ち切るための方法がノンストップライティングなのかなと思います。

他にも色々とアイデアを生み出す技術・アイデアをふくらませる技術を紹介されているので、興味ある方はぜひ読んでみてください。







そういえば、最近PodCast聴き始めて、以下を聴きました。

lean-agile.fm

すげー面白かったですw

ただ、コレ聴いてから、確実に意識変わったなって自分でも思います。

危機感と比例して勉強意欲が出てきたというか。。。

とにかくコレ聴いたときから、プレッシャー駆動開発始めてます。

流石に寝れないっていうのは無理だけども、自分なりにどんなのがプレッシャーになるかなーと考えて、

決められたタスクこなせないと、1ヶ月のお小遣いが減っていくというようにしました。

自分も週で区切ってやるつもりなので、1ヶ月丸々やらなかったら、翌月のお小遣いは2000円という悲惨な結果になってしまいます。。。

これ決めるとほんとにやる気出てきました。

まだ2週目なのですが、なんとかクリアしていますw

3週目も頑張ろう。。。

あと、このブログもなんとか続けていこうと思います。

コミュ力とは

おはようございます。

かなり日数あきました笑

なかなか連続postするのって難しいですね。。。

 

まぁでも、なるべく続けようと思います。

 

今回もまた技術的な話ではありません。

 

 

  

みなさんコミュニケーション取れてますか?

 

世間ではコミュ力とかコミュ障とか、コミュニケーションに関係した言葉が学生間でも飛び交ったりしてると思います。

 

 

 

よく

 

エンジニアは技術あってもコミュ力低いとダメ

 

って言われたりしてると思います。

ふと思ったんですが、ここで言うコミュ力ってなにを指してるんでしょうか?

 

 喋りが上手い人なのかな?

 

今まで色んな現場経験して、話すのが苦手な人とか、人見知りな人とかがエンジニアの同僚でいましたが、決してやりにくかったことはないです。

 

むしろその人がプロジェクトのコアとして回してた感あります。
(まぁたまたまそういうプロジェクトだっただけかもですが・・・)

 

そういった人も世間からみるとコミュ力低い部類に入ってるのと思うと、すごく違和感あります。

 

それなのに、ぐいぐい話しかけてくる営業さんとかはコミュ力高いと評価される。ここもすごく違和感あります。


前述した人見知りな人とかからしたら、こっちの気持ちを察せずにグイグイ話しかけてくる人はコミュ力高いと思えないんじゃないでしょうか。

結局コミュ力って人それぞれの感じ方ってこと何でしょうかね。


このことをずっと考えていたんですが、一応の僕的な解答我でました。

 

コミュ力 = 空気が読める力

 

かなと。

相手の気持を察して話したり話さなかったり。

そういう「察せる能力」がコミュニケーション力なのではないかなと思いました。



なので、少々話ベタや人見知りなエンジニアさんが面接できても、それだけでコミュ力ないなと判断しないでほしいです。

まぁ、、、、空気読めるかどうかを面接でどうやって判断するんだとなると、答えはないのですが・・・


あ、あと大事なのは、そういった人が入社して、飲み会とかで一人でボーッとしていても無理やり話ふるのもやめてあげてください。

その人は距離感を図っているもしくは、ちゃんと場を楽しんでいるはずです。

 

徐々に慣れるので優しく見守ってあげてほしいです。


ちなみに自分も人見知りです。

 

 

ではでは。

 

 

本年度2回目

どうも。

 

久々投稿です。

 

いやー。1週間1postとか気合い入れてたんですが、やっぱ難しいですね笑

 

とくに年末年始は忙しかったんで、完全にブログの存在を忘れてました。

 

ただ、本年度は努力の年にしようと思いますんで、なるべく1週間1postを守れるように頑張りたいと思います。

 

そんな感じで、今回も仕事とは関係ない記事です。

 

僕は今まで、

 

小田急

西武池袋線

有楽町線

東武東上線 ← 現在

 

と、いろいろ引っ越しては使う電車も変わってたのですが、現在の東武東上線は、異常に車内でケンカが多いなぁーと思います。

 

1/4が仕事始めだったんですがだったんですが、そこでも小競り合いありましたし、昨日の帰りもなにやらケンカしてました。

 

なんか電車の中だけ皆沸点低いなー?

 

とか思って満員電車の中考えたんですが、やっぱ満員電車だからなんですかね?

 

とはいえ僕も満員電車乗ってるけど車内でケンカなんかしたことないし、やっぱ基本短気だからなんですかね。

 

そんで、ケンカする人(ふっかける人)は、ほぼほぼおっさん。

 

やれ狭いだ遅いだと。

 

正直あんたの口臭もなかなかだよ?とか思います。

 

年を重ねるにつれて、毛と一緒にモラルも抜け落ちてってるんですかね。

 

そういった環境にいると、こちらもいい気分にはなれません。

 

ただ、半面教師として勉強になるなと割り切ればなんとか大丈夫です。

 

自分はもっとスマートでかっこいいオッサンになってますように。

 

そんな事を思いながら満員電車に揺られています。

 

次は仕事系の投稿します!

 

君の名はを観に行った。

こんばんは。僕です。

全然エンジニア的な投稿ではないですが、、、とりあえず書くことを頑張りたいと思い、書きたいと思います。

クリスマスイブということで、奥さんと今まで観てなかった 君の名は を観に行きました。 

興行収入も、 ハウルの動く城もののけ姫を抜いて堂々3位だし、CMやニュースでも嫌というほど宣伝されてました。

僕は昔からRADWIMPS大好きだったので、公開初日に観に行きたいと思ってたのですが、のびのびになって結局今日になりました。

以下ほんの少しネタバレです。









あくまで個人的な感想ですが、面白いけど、そこまで大ヒットするのかなぁ?という感じでした。

もののけ姫のほうが全然面白かったけどなぁと。

謎も多かったんですよね。。。

今まで寝ているときに入れ替わっていたのに、なぜお酒?飲んだら入れ替わったの?

どうやってお父さんを説得したの??

なんで手のひらに 好きだ って書くの?名前書けよ

とかとかw


個人的には、お父さんを説得した方法がすごく知りたかったです。結構肝なところかなと。

いや、結果避難訓練として町民を高校に集めたのは、ニュースで知ることができたんですが、町民を集めた経緯はどうやったのだろうと。

そんな感じで、謎が多い映画でしたが、新海誠さんの作品だけに、とにかく映像がきれいでした。

ちなみに、奥さん的にはいつ世界線がズレたのかというシュタゲ的な感想をいつまでも持っているようです。



あと、RADの曲はよかったです。

久々にライブ行きたくなった。(でも洋次郎に抱かれたい女子がうざそう・・・)

ではでは。

以下追記

全貌は小説に書いてあるみたいです。

知りたきゃ買えってことですか。。。

はてなブログ始めました。

2016年も終わりというこのタイミングでブログ始めました。

来年から勉強したことや、日常のことなどをブログにアウトプットしていければと思います。

目標は 週に1回投稿すること

飽きっぽいのできるか心配。。。





それでは皆さん良い年を。