ソノウチイエオカウ

タイトルと無関係な個人用の技術メモ

Docker:コマンド

操作

  • docker run [イメージ名or ID] <その他オプション>:下記の一括実行
  1. docker pull:イメージ取得
  2. docker create:コンテナ作成
  3. docker start:起動
  • docker stop [イメージ名or ID]:コンテナを止める
  • docker restart [イメージ名or ID]:コンテナを再起動
  • docker rm [イメージ名or ID]:コンテナの削除
  • docker rmi [イメージ名or ID]:ローカルimageの削除

参照

docker images:ローカルにあるimageの一覧

docker ps <オプション>:コンテナの一覧表示

-a 停止中のコンテナも表示

-f name=*** nameで絞り込み

Docker:大まかな手順

Dockerのコンテナ作成・実行する手順(windowsで実施)

 

・Dockerfileを作成

「Dockerfile」というファイル名で作成


・DockerfileからDocker imageを作成

Dockerfileを作成したディレクトリで、コマンドプロンプトからコマンド実行
⇒「.」までいる

docker build .

 

・Docker imageからコンテナを作成し、コンテナに入る
 ⇒コンテナ実行後、終了せずにbashを起動

docker run -it [イメージ名 or ID] bash

 

・コンテナの終了(コンテナ内のbashから)

exit

 

・コンテナを起動

docker start [イメージ名 or ID]

 

・起動しているコンテナに入る

docker exec -it [イメージ名 or ID] bash 

 

・コンテナを終了(コンテナ外から)

docker stop [イメージ名 or ID]

 

Docker:コマンド - ソノウチイエオカウ

 

※Win Dockerのイメージ保存場所を変更は下記を参考に実行した

https://zenn.dev/trusted_dream/articles/b7547b732c1d62

 

FuelPHP ◇ Imageのリサイズで背景色が黒色になる

FuelPHP1.7.1の段階で、Imageのリサイズで'bgcolor'の設定を行っても、リサイズの背景色が黒にしかならない。

 

gerolian.comさんのblogで対応を追ってます。

[fuelPHP] ImageClassでbgcolorが反映されず真っ黒になる件 | Gerolian

 

細かいところは上記blogで確認してもらうとして、とりあえずの対応はアルファ指定なら設定できるようなので、

例えば白にするとかなら

'bgcolor' =>  '#FFFFFFFF',

 のように設定すれば可能

 

今後のリリースでなおるのかな?

FuelPHP ◇ CSRF対策を行う

1.config.phpの設定

  • csrf_autoload : trueにすると自動でチェックを行う。ほとんどの場合、手動でチェックを行うのでfalseにしておく
  • csrf_token_key : hiddenにセットされるcsrfチェック値のキー
  • csrf_expirationcsrfクッキーの有効期限。0より大きな値は有効な秒数
 

2.htmlへcsrfキーのセット(チェックを行う前画面)

echo \Form::hidden(\Config::get('security.csrf_token_key'), \Security::fetch_token());

 

3.チェック

    if ( ! Security::check_token())
    {
        // CSRF 攻撃または CSRF トークンの期限切れ
    }

 

FuelPHP ◇ DB::queryで表を結合したクエリの件数をDB::count_last_query()で取得すると duplicate column name 'id'エラーになる

DB::queryで表を結合したクエリの件数をDB::count_last_query()で取得すると duplicate column name 'id'エラーになる場合がある

 

これは、migrate等でテーブルを自動生成した場合、id列が自動で付加される為、結合する両方のテーブルにid列が存在してしまう。

よって、クエリで取得カラムを指定していない(もしくは*で指定)場合、id列の重複エラーとなる。

但し、count_last_queryではなく、普通にselectする場合は、エラーとならない(重複したカラムが自動でリネームされるため)

 

count_last_query時のエラーを回避するには取得カラムを適切に設定する(1テーブル全項目の場合は、table名.*でもいいが)

 

FuelPHP ◇ FuelPHPのデバッグを行う(プロファイリング)

FuelPHP にはアプリケーションプロファイラがついており、アプリケーションの情報や実行SQLなどが確認できる。

 

[設定]

/fuel/app/config/
[config.php]

// profilingを有効
'profiling' => true,

 

 

(DB関連も有効にする場合)

[db.php]

// profilingを有効
'profiling' => true,

 

 

※但し、本番環境では有効にしない方が良いので、「/fuel/app/config/environment/」内にファイルを配置し、そちらを有効にした方が良い。

 

上記設定を行うと、画面の右下に「Code Profile」という名前でタブが現れるので、クリックすると内容が確認できる。

確認できる内容は下記

  • Console. デフォルトのタブ。エラー、ログ、メモリ使用量や実行タイミングに関する情報を提供します。
  • Load time. リクエストのロード時間。タブ内で詳細を表示します。
  • Database. 実行されたクエリ数や実行時間および、もしサポートされていればクエリの解析。
  • Memory. リクエストの処理に要したメモリ使用量。
  • Files. 読み込まれた PHP ファイルのフルパス名と、それらの容量。
  • Config. 処理の終了時点における、設定値の内容。
  • Session. 処理の終了時点における、セッション値の内容。
  • GET. $_GET 配列の内容。
  • POST. $_POST 配列の内容。