/**ぶろぐ*/

コメントアウトしたくなるブログ

docker for windowsを使ってlaravelの開発環境を作る

about

インターンでlaravelを使った案件があって,とりあえず勉強にと自宅のwindowsに開発環境を作ることにした. しかしwindowsでのphpの開発環境構築は面倒くさい印象を持っていたので,dockerとlaradockでサクッと作る.

構築する環境

  • windows10 pro

dockerをいれる

windows用のdockerが,docker for windowsという名で公式から出ている.

docs.docker.com

これはhyper-vを利用しているので,windows10 homeは使用できない.その場合はVirtualBoxを使用するdocker Toolboxを使用してみるといいかも.

www.docker.com 今回はdocker for windowsを使用する.

手順

  1. インストーラーをダウンロード・実行する.
  2. インストール完了後ログアウトされるのでログインする.(hyper-vを無効化していた場合は再起動になるかもしれない)
  3. dockerの設定からshard drivesにCドライブをあてる.(どのドライブをあてるかはお好みで) f:id:matsuneko22:20170908003648j:plain

ネットワークの設定はインストーラがやってくれるので必要ない.

laradockの導入

laradockはlarabelの開発環境をdocker上に作成するためのツールである.

github.com これを使うとDBやwebサーバのコンテナを簡単にそろえることができる.

手順

プロジェクトのフォルダの作成

  1. shard drives内の任意の場所にプロジェクトのフォルダを作成する.
  2. そのフォルダ内にlaradockをダウンロードする. ディレクトリ構造はこんな感じになる.
project
|
|_laradock

laradockの設定ファイルの編集

laradockのフォルダ内にenv-exampleがあるので,それを.envとしてコピーする. .envでは使用するコンテナの設定パラメータがあり,書き換えることでコンテナを制御することができる. 今回はNginx,postgres,redisのコンテナを利用する*1. 編集箇所は以下の通り.

1.ホストIPの設定

windowsIPアドレスに書き換える

// DOCKER_HOST_IP=10.0.75.1
DOCKER_HOST_IP=169.254.80.80

2.xdebugのインストール設定

WORKSPACE_INSTALL_XDEBUG=true
PHP_FPM_INSTALL_XDEBUG=true

3.Nginxのポート設定

windowsがすでに使用しているポートと被らないように変更.

// NGINX_HOST_HTTP_PORT=80
NGINX_HOST_HTTP_PORT=8080

コンテナの起動

コンテナの起動は一つのコマンドでできる.

  1. powershellを起動し,laradockのフォルダまで移動.
  2. docker up -d nginx postgres redisを実行*2

完了すると起動しているコンテナの一覧はこうなる.

PS C:\略\project\laradock> docker-compose ps
         Name                        Command               State                      Ports
-------------------------------------------------------------------------------------------
laradock_applications_1   /true                            Exit 0
laradock_nginx_1          nginx                            Up       0.0.0.0:443->443/tcp, 0
laradock_php-fpm_1        docker-php-entrypoint php-fpm    Up       9000/tcp
laradock_postgres_1       docker-entrypoint.sh postgres    Exit 1
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

laravelのプロジェクトの作成

コンテナを作成したあと,コンテナ内に入りlaravelのプロジェクトを作成する. 前項に引き続きlaradockのディレクトリ内でdocker-compose exec workspace bashを実行. 無事には入れたら,composerを使って作成.

PS C:\略\project\laradock> docker-compose exec workspace bash
root@d9443b2831a8:/var/www# composer create-project --prefer-dist laravel/laravel my_app

作成したらexitでコンテナから抜ける. 次に.envファイルのAPPLICATIONのパスを設定.

// APPLICATION=../
APPLICATION=../my_app/

そしたら docker up -d nginx postgres redisをもう一回実行*3. 完了したらhttp://localhost:8080にアクセス. こんな画面が出てきたら成功. f:id:matsuneko22:20170908015438j:plain プロジェクトフォルダの最終的な構造はこんな感じ.

project
|
|_ laradock
|
|_ my_app

ホストのwindowsの方にもmy_appのフォルダが作成されており,これを編集すると逐次コンテナのほうに反映されるらしい.

おわりに

laradock入れてlaravelのプロジェクトを作成するのはそんなに難しくはなかったけど,xdebugの設定だけがよくわからなかった. xdebugを使いたい場合は以下の記事を参考にするといいかも.

qiita.com

rosの記事はいつかまた書きます. おわり

参考

Frequently asked questions (FAQ) | Docker Documentation

Laravel開発環境をLaradockで構築する | Tips Note by TAM

Laradock

*1:ほかにもapache2やmysqlもつかえるらしいので公式見てほしい

*2:コンテナのbuildと起動を同時にやってくれる

*3:またか・・・

全米が涙するブログ書く

www.adventar.org なにかの七面鳥火炙りカレンダー2016の17日目です.みなさん,どうお過ごしでしょうか?僕は冬眠するタイミングを逃して苦しい寒い季節を過ごしています.

さて,告知していた通り,全米が涙したブログを書きたいと思います.下記をご覧ください.











2016年最初で最後の渾身のギャグ

全米「fooooo!」
このギャグは研究室でボーとしていたら思いついた,渾身のギャグです.ご堪能ください.






「RealSenseはリアルな扇子!?そんなセンスで大丈夫?」

静まり返った全米「oh...」

以上です.ありがとうございました.皆さん良いお年をお過ごしください.
一年が過ぎて行くことに気がついた全米「oh my god!!(号泣)」

明日は005nortonさんです.gitのGUIツールについての記事だそうです,楽しみですね.

ubuntu16.04にROSの開発環境構築

目的

ROSを入れて、turtlebot simulatorを動かす。

ROSってなに?

Robot Operating System
Real Time OSと勘違いしていた。
本人も理解できていないので公式のドキュメントを見てほしい。

ROSを使うことになった経緯

研究室で使うから(なぜこうなった)。
とりあえず、やるぞー!(やけくそ)

環境詳細

OS:ubuntu 16.04 LTS
ROS:Kinetic Kame

ROSの導入

このチュートリアルを参考に導入する。

rosのインストール

まず、ppaの追加。

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
sudo apt update

次にROSのインストール。今回はturtlebotのシミュレータをしたいのでGazeboも含まれるdesktop-full版を入れる。

sudo apt install ros-kinetic-desktop-full

rosdepの初期化

rosdepとは、rosの依存関係を管理するソフト。rosdepの初期化しておく。

sudo rosdep init
rosdep update

rosの環境変数を読み込む

rosを実行するためにはrosの環境変数を読み込む必要がある。その環境変数を読み込むスクリプトが用意されているので事前に実行しておく。

source /opt/ros/kinetic/setup.bash

ちなみに、bashrcに書いておくことで実行忘れを防げておすすめ。

echo "source /opt/ros/kinetic/setup.bash" >> .bashrc

rosinstall

開発で使うrosinstallを導入。(これ何?)

sudo apt install python-rosintall

python3-rosinstallもあるが、依存関係を解決していく過程でrosが削除されたので断念した。

"Hello World!"する

へろーわーるど(疲れたので次回に回します・・・)

turtlebotのツール導入

turtlebot開発に必要なツールを一気に入れる。

sudo apt install ros-kinetic-kobuki* ros-kinetic-rocon* ros-kinetic-ar*

turtlebotシミュレータを動かす

まず、以下のコマンドでgazeboを起動。

roslaunch turtlebot_gazebo turtlebot_world.launch

gazeboの起動が遅いので、その間にコーヒーを入れてくる。
次に、新しいターミナルを開いて、次のコマンドを実行。

roslaunch turtlebot_teleop keyboard_teleop.launch 

turtlebotの操作コマンドの一覧が出てくる。操作するときはこのターミナルから行う。
最後にこのコマンドを実行。

roslaunch turtlebot_bringup minimal.launch 

そうすると、一つ前の手順で実行したターミナルで操作ができるようになるはず。 (turtlebotのお散歩を楽しむ) f:id:matsuneko22:20161203221047p:plain

最後に

あまり日本語資料がなかったので、自分で試したことをまとめてみました。おかしなところがあったらコメントお願いします。 あと、すごくまじめな内容になってしまったので、いつもの変な内容を期待していた人たちには申し訳ないです。

今回参考にした資料

demura.net | ロボットプログラミングⅡ:第4週 シミュレータを動かそう!

kinetic/Installation/Ubuntu - ROS Wiki

OSの設計と実装を受けてみて

人生設計の大切さを学びました。

 

おわり

気がついたら誕生日が過ぎていた話

 ロボコンから始まった、休日が無い日々は今日で終わりを迎えました。それと同時に、私の誕生日も過ぎ去ってしまっていました。

 コーオプ実習の面接で「私の長所は優柔不断なところです」と叫んだ頃から早一年。正直のところあのバカっぷりは全く治っておらず、日々自分の馬鹿によって多くの人に迷惑かけている気がします。関係各位には申し訳ないです。そして、なんだかんだ言いながらフォローしてくれる方々に感謝したいと思います。

 ふと一年先のことを考えてたら、研究や就活で忙しいそうであまりうれしくないです。とにかくのんびりすごす性分なので、回りに流されてアレもこれもしなくてはならない状況は好みではないですし、何かに合わせることも苦手なので就活と聞くだけで後回しにしたくなります。研究だけして卒業したいですね。

 そんなこともふと考えましたが、このペースに合わせる相手の身になってみるとたまったもんじゃないですね。社会が自分のペースに合わせてもらうのを待つより、自分が社会に合わせたほうが周囲への摩擦が少なくてすむ気がします。世渡り上手になったほうが、きっとエネルギー効率が良いのでしょう。「エディタを自分に合わせるのではなく、エディタに自分を合わせるのだ」というある人の言葉を思い出しました。

 ということで、のんびり過ごすことは週末にとっておきます。平日はアグレッシブなナマケモノということで。

 

Swayをつかってみた

swayってなに?

Microsoftが最近だした、プレゼンテーションやドキュメントを作るツールらしい。

ということで、試しに作ってみた。

機能はpowerpointoより絞られているけど、その分UIわかりやすいと思った。

Cookie職人に俺はなる

この記事はLC Advent Calendar 8日目です。

誰も書かないのは何だか寂しいものがあるので、今日も適当に書いてきます。

さて、皆さんCookieご存じですよね?そうです。ブラウザに残ってるやつです。

最近は広告などに利用されるCookieですが、たまにウザくなったりしますよね。しかも、消せないゾンビCookieがあるとか...

という事でCookieとはなんなのかをのんびり学んでいきたいと思います。


クッキーの材料は以下の通りです。
  • 砂糖
  • ベーキングパウダー
では、下ごしらえです。
卵を卵白と卵黄に分けます。
f:id:matsuneko22:20151208220305j:image

卵黄に砂糖を入れてかき混ぜます。
f:id:matsuneko22:20151208220415j:image

泡が立つぐらいがいいらしいです。
f:id:matsuneko22:20151208220619j:image

次に卵黄です。
砂糖、水、油を入れてかき混ぜます。
f:id:matsuneko22:20151208221110j:image
砂糖の玉がなくなるくらいかき混ぜることがポイントらしいです。

そして、下ごしらえした二つを合わせてー
f:id:matsuneko22:20151208221403j:image
生地の完成です。
f:id:matsuneko22:20151208221525j:image

作った生地は型に入れてオーブンで焼きます。
f:id:matsuneko22:20151208221800j:image
45分程度焼くとシフォンケーキの完成です。

クッキー関係ないじゃん

クッキーを焼きます。

まず、を召喚します。
その妹がクッキーの生地を持っていたので...
f:id:matsuneko22:20151208222227j:image

いい感じに広げて・・・
f:id:matsuneko22:20151208233336j:image

型で抜きます。
f:id:matsuneko22:20151208233533j:image

f:id:matsuneko22:20151208233634j:image

そしてオーブンに入れて焼きます。
f:id:matsuneko22:20151208233732j:image

出来上がりはこんな感じになりました。
f:id:matsuneko22:20151208233908j:image

手軽に焼けるので、お茶請けがないときにちょうどよさそうですね。

最後に

結局Cookie関係ない内容になりましたが、クッキーの奥深さに気づけたような気がしました。でも、僕はクッキークリッカーで十分ですね。機会があればまた生産します。

明日は誰かが書いてくれるかもしれないです。