dockerコンテナが起動しない
WARNING: Host is already in use by another container ERROR: for api Cannot start service api: driver failed programming external connectivity on endpoint docker_api_1 (e819fe...): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use ERROR: Encountered errors while bringing up the project.
80番ポートが既に使われているっぽい
lsof -i:80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME apache2 4666 root 4u IPv6 38177 0t0 TCP *:http (LISTEN)
apache2がいた!
apache2を停止する。
自動起動も無効にする。
service apache2 stop systemctl disable apache2
docker-compose up Starting docker_api_1 ... done
起動できた!
.vimrcでエラー E254: Cannot allocate color 7
いつものように~/.vimrcを編集してvimを起動したらエラーが出た
E254: Cannot allocate color 7
バージョンによっては7なんて色はないらしい。
LightGrayに変更して解決。
~/.vimrc
highlight SpecialKey cterm=NONE ctermfg=7 guifg=7 highlight JpSpace cterm=underline ctermfg=7 guifg=7 ↓ highlight SpecialKey cterm=NONE ctermfg=LightGray guifg=LightGray highlight JpSpace cterm=underline ctermfg=LightGray guifg=LightGray
foreachで参照渡しで値を変更するとバグる
foreachで参照渡しで値を変更するとバグる
$vals = [1,2,3]; foreach ($vals as &$val) { $val *= 2; } echo json_encode($vals); //[2,4,6] foreach ($vals as $val) { echo $val . ','; } //2,4,4,
何が起こっているか
$vals = [1,2,3]; foreach ($vals as &$val) { //$valに$vals[0],$vals[1],$vals[2]への参照が入っていきます $val *= 2; } echo json_encode($vals); //[2,4,6] //$valに$vals[2]への参照が残ったままです foreach ($vals as $val) { //$vals[2]へ$vals[0],$vals[1]の値が入っていき、 //$vals[2]には$vals[1]の値が残ります echo $val . ','; } //2,4,4,
unsetして解決
$vals = [1,2,3]; foreach ($vals as &$val) { $val *= 2; } echo json_encode($vals); //[2,4,6] unset($val); //$vals[2]への参照を解除します foreach ($vals as $val) { echo $val . ','; } //2,4,6,
Dockerまとめ
公式ドキュメント
https://docs.docker.jp/ (日本語版)
インストール
CentOS8 Docker/Docker Composeインストール
https://qiita.com/chenglin/items/8e13e7ad45cc9bae264a
記事リスト
docker-composeでLaravel環境構築(PHP/nginx/MySQL) - forget for get
WinMergeでワード、エクセル、パワーポイントの差分を見る
WinMergeでOfficeファイルのテキスト差分を見る
gitやsvnでWord, Excel, PowerPointなどのOfficeファイルを管理していると、
変更があっても、どこが変更されたのかわからず、確認が面倒。
WinMergeのプラグインを使うと、Word, Excel, PowerPointなどからテキストを抽出し、
その差分を表示することができます。
プラグイン→プラグインの設定で
「CompareMSExcelFiles.sct」「CompareMSPowerPointFiles.sct」「CompareMSWordFiles.sct」
があるので、チェックを入れて有効にする。(デフォルトで有効になってるかも)
プラグイン→自動展開
この状態でWinMergeでOfficeファイルの比較をすると、テキスト差分を見ることができる。
TortoiseSVNやGitExtensionsでもOfficeファイルのテキスト差分が見れる
TortoiseSVNやGitExtensionsでもWinMerge連携をしておくと、Officeファイルの差分を見ることができる。
TortoiseSVNのShow logから該当ファイルのShow Changes
GitExtensionsの差分ツールを用いて開く
Apache Tikaを使う方法よりこっちの方が簡単。
よく使うLinuxコマンドまとめ
cd
cd /var/www/html cd ../../Models
ls
-l: 詳細 -a: 隠しファイルも表示 -t: 更新時間で並べ替え
ls -alt
mkdir
mkdir new_dir
cp
-a: 所有者、パーミッション、更新時刻などなるべくそのままコピー
cp -a aaa.php bbb.php
mv
mv aaa.php bbb.php mv aaa.php ../
rm
-r: ディレクトリ削除 -f: 強制削除
rm aaa.php rm -r dir rm -f logs/*.log
chmod -R 644 public
chown -R apache:apache public
ln
-s: シンボリックリンク
ln -s target/origin link
find
-name: ファイル名指定
find app/Models -name "*.php"
grep
-R: ディレクトリ配下を再帰的に -v: 除外 -l: ファイル名のみ
-B: 前の行も表示 -A: 後の行も表示
grep -R battle_start app/Models grep -R battle_start app/Models | grep -v function grep -R battle_start app/Models -A 3
GitExtensionsで削除されたリモートブランチが消えずに残ってる
結論:GitExtensionsの設定で「フェッチと共にリモートブランチをプルーン」を適用すると解決。(設定>Git>高度な設定)
GitExtensionsでブランチ切り替えするとき、リモートブランチ一覧に削除されたリモートブランチが消えずに残ってる。
JIRAでブランチを作成した後、ローカルでブランチを切り替えるときに選びづらくてしょうがなかった。
そもそも、普通にフェッチしただけだと、削除されたリモートブランチはローカルからは消えてくれないらしい。
削除したい場合はプルーンというオプションをつける必要がある。
git fetch --prune
参考:Gitのリモートブランチを削除するまとめ - Qiita
GitExtensionsで「フェッチと共にリモートブランチをプルーン」という設定を適用すると、削除されたリモートブランチが消えてくれた。