Docker:コマンド
操作
- docker run [イメージ名or ID] <その他オプション>:下記の一括実行
- docker pull:イメージ取得
- docker create:コンテナ作成
- 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]
※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_expiration
: csrfクッキーの有効期限。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 配列の内容。